@delight
2014-05-02T20:33:05.000000Z
字数 2312
阅读 3810
java
logback
xml
分为以下几种情况:
a. 在web应用程序中使用logback.
在maven的配置文件pom.xml
中添加:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback-version}</version>
</dependency>
其中logback-version
自己在properties
中指定,然后在/resources
中新建一个logback.xml
,填入相应的配置。
b. 使用logback记录jetty access log.
在jetty的resources
目录中新建jetty-logging.properties
文件,填入如下配置:
org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog
并在 ${jetty.home}/lib/ext/
中放入 logback-access-${version}.jar
和logback-core-${version}.jar
两个文件。
编辑${jetty.home}/etc/jetty.xml
文件,并加入以下配置:
<Set name="handler">
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler">
<Item>
<New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
</Item>
<Item>
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
</Item>
<Item>
<New id="RequestLogHandler"
class="org.eclipse.jetty.server.handler.RequestLogHandler"/>
</Item>
</Array>
</Set>
</New>
</Set>
<Ref id="RequestLogHandler">
<Set name="requestLog">
<New id="requestLogImpl" class="ch.qos.logback.access.jetty.RequestLogImpl">
</New>
</Set>
</Ref>
其中第一段原来已经存在,只要填入
<Item>
<New id="RequestLogHandler" class="org.eclipse.jetty.server.handler.RequestLogHandler"/>
</Item>
即可.
然后,在 etc/
中新建一个logback-access.xml
,填入如下配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- always a good activate OnConsoleStatusListener -->
<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/app/log/Push-server/jetty_access.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/var/app/log/Push-server/jetty_access.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>combined</pattern>
</encoder>
</appender>
<appender-ref ref="FILE" />
</configuration>
上面的路径请自定义。
PS: logback的一些配置技巧:
可以通过指定filter来限制输出的内容。如:
<appender name="push" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter" >
<level>WARN</level>
</filter>
...
</appender>
这样就限制了push这个appender只输出WARN等级以上的日志。
可以通过
<logger name="org.cometd" level="WARN">
<appender-ref ref="webapp" />
</logger>
来将某个logger的指定等级的log输出到指定appender。