Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 如何配置jetty将日志放入外部文件_Logging_Jetty - Fatal编程技术网

Logging 如何配置jetty将日志放入外部文件

Logging 如何配置jetty将日志放入外部文件,logging,jetty,Logging,Jetty,如何配置jetty将其日志放入外部文件 我必须将slf4j放入lib目录 我所做的是: 下载slf4j并将slf4j-log4j12-1.7.3.jar放入$JETTY_HOME$/lib中 下载log4j并将log4j-1.2.17.jar放入$JETTY_HOME$/lib中 创建一个log4j配置文件。可从以下位置获取: 注释行 “#org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.stderlog”在$je

如何配置jetty将其日志放入外部文件

我必须将slf4j放入lib目录

我所做的是:

  • 下载slf4j并将slf4j-log4j12-1.7.3.jar放入$JETTY_HOME$/lib中
  • 下载log4j并将log4j-1.2.17.jar放入$JETTY_HOME$/lib中
  • 创建一个log4j配置文件。可从以下位置获取:


  • 注释行

    “#org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.stderlog”
    $jetty_HOME$/resources/jetty logging.properties中

尽管我做了上面描述的所有事情,但在目标目的地中看不到任何日志。所有日志条目仍可从控制台获得

更新的说明(2016年6月) 对于Jetty 9+,您将使用拆分的
${Jetty.home}
${Jetty.base}
目录

注意:请勿编辑/修改/删除/添加/删除
${jetty.home}
中的任何内容。从现在起,所有配置都将驻留在
${jetty.base}

作为命令行的说明:

$mkdir/path/to/mybase
$cd/path/to/mybase
#准备一个基本的jetty.base目录
$java-jar/path/to/jetty dist/start.jar——添加到start=http,deploy,resources,ext
信息:ext在${jetty.base}/start.ini中初始化
信息:资源在${jetty.base}/start.ini中初始化
信息:服务器已在${jetty.base}/start.ini中初始化(传递)
信息:http在${jetty.base}/start.ini中初始化
信息:在${jetty.base}/start.ini中初始化部署
MKDIR:${jetty.base}/lib
MKDIR:${jetty.base}/lib/ext
MKDIR:${jetty.base}/resources
MKDIR:${jetty.base}/webapps
信息:基本目录已修改
#下载所需的jar文件
$cd/path/to/mybase/lib/ext
$curl-Ohttp://central.maven.org/maven2/org/slf4j/slf4j-api/1.7.21/slf4j-api-1.7.21.jar
$curl-Ohttp://central.maven.org/maven2/org/slf4j/slf4j-log4j12/1.7.21/slf4j-log4j12-1.7.21.jar
$curl-Ohttp://central.maven.org/maven2/log4j/log4j/1.2.17/log4j-1.2.17.jar
#准备码头侧测井,以使用slf4j
$cd/path/to/mybase/resources
$echo“org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog”>jetty-logging.properties
#获取log4j.xml的副本以初始化内容
$cd/path/to/mybase/resources
$curl-o log4j.xmlhttps://gist.githubusercontent.com/joakime/13e31db59b83079be3fdc1a877de7060/raw/5c275a2a2f29445d6cdde7fcae3820da99e7234b/log4j.xml
#起动码头
$cd/path/to/mybase
$java-jar/path/to/jetty dist/start.jar
注意:不要启用
日志记录
模块,因为这严格适用于Jetty的
标准日志
实现。该
logging
模块将捕获任何
System.err
System.out
并将其重定向到滚动日志文件。此捕获和重定向将与您的log4j
ConsoleAppender
直接冲突

原始说明-仅在Jetty 8(现在为EOL)和更早版本上有效 遵循以下步骤:

  • $JETTY_HOME/lib
    中创建日志目录:
    $JETTY_HOME/lib/logging
    (这只是最佳实践)
  • log4j
    slf4j-log4j
    slf4j-api
    放入该目录: e、 g.:
    log4j-1.2.16.jar
    slf4j-api-1.6.1.jar
    slf4j-log4j12-1.6.1.jar
  • 通过在
    $jetty_HOME/start.ini
    选项中添加“
    日志记录”
    ”,确保jetty的类路径中有该新目录: e、 g.:
    OPTIONS=Server、websocket、resources、ext、jsp、jdbc、logging
  • 将您的
    log4j.properties
    放在
    $JETTY\u HOME/resources
    目录中
  • 起动码头

  • 如果您的log4j.properties设置正确,这应该适合您。我会注意在文档中有这样一个分步指南

    如果您使用的是Jetty 9,您还有一个步骤。退出$JETTY_HOME/resources/JETTY-logging.properties以使这一行
    org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog
    此文档已更新。。。我使用的是Jetty9,按照您的步骤操作,但是得到java.lang.ClassNotFoundException:org.slf4j.LoggerFactory异常。
    <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
      <param name="Threshold" value="DEBUG" />    
      <param name="File" value="c:/app/jetty/logs/server.log" />
      <layout class="org.apache.log4j.PatternLayout">   <param name="ConversionPattern" value="%d  %-5p  [%c{1}] %m %n" />
      </layout>
    </appender>
    <root>
      <priority value="debug" />
      <appender-ref ref="fileAppender" />
    </root>