@delight
2014-05-02T12:33:05.000000Z
字数 2312
阅读 4015
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。