系统配置之logback日志
2016-08-17 16:53
447 查看
1.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://www.ccloomi.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.ccloomi.com schemas/logback.xsd">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%thread]%-5level %logger{5} - %msg%n</pattern></encoder>
</appender>
<!-- 错误日志 -->
<appender name="ziPFileOut_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>D:/logs/idcc-project-error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>D:/logs/idcc-project-error.%d{yyyy-MM-dd}.log%i.zip</fileNamePattern>
<maxHistory>30</maxHistory>
<TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<MaxFileSize>2MB</MaxFileSize>
</TimeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%thread]%-5level %logger - %msg%n</pattern></encoder>
</appender>
<!--1.root的默认level是DEBUG 是所有logger的根
2.additivity默认是"true"(为true时会传递给父logger,但level级别还是自己的)
3.如下logger父子关系是com.idccapp com error,跟配置顺序无关,程序会自动匹配最低的那个logger
例如:com.idccapp.LogbackDemo这个类会匹配到name="com.idccapp"而不是name="com" 如果additivity="false" 则只是会记录到
当前自己的appender,如果additivity="true" 会依次顺序传递给name="com"和root但传递后父logger的level级别还是name="com.idccapp"
的INFO,而不是父logger的error(PS:如果传递到name="com"且additivity="false"此时就不会传递给root了)
-->
<root level="error">
<appender-ref ref="STDOUT"/>
</root>
<logger name="com" level="error" additivity="false">
<appender-ref ref="ziPFileOut_ERROR"/>
</logger>
<logger name="com.idccapp" level="INFO" additivity="true">
<appender-ref ref="ziPFileOut_ERROR"/>
</logger>
</configuration>
2.测试类
package com.idccapp;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LogbackDemo {
private static Logger log = LoggerFactory.getLogger(LogbackDemo.class);
public static void main(String[] args) {
log.trace("======trace");
log.debug("======debug");
log.info("======info");
log.warn("======warn2");
log.error("======error");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://www.ccloomi.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.ccloomi.com schemas/logback.xsd">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%thread]%-5level %logger{5} - %msg%n</pattern></encoder>
</appender>
<!-- 错误日志 -->
<appender name="ziPFileOut_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>D:/logs/idcc-project-error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>D:/logs/idcc-project-error.%d{yyyy-MM-dd}.log%i.zip</fileNamePattern>
<maxHistory>30</maxHistory>
<TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<MaxFileSize>2MB</MaxFileSize>
</TimeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%thread]%-5level %logger - %msg%n</pattern></encoder>
</appender>
<!--1.root的默认level是DEBUG 是所有logger的根
2.additivity默认是"true"(为true时会传递给父logger,但level级别还是自己的)
3.如下logger父子关系是com.idccapp com error,跟配置顺序无关,程序会自动匹配最低的那个logger
例如:com.idccapp.LogbackDemo这个类会匹配到name="com.idccapp"而不是name="com" 如果additivity="false" 则只是会记录到
当前自己的appender,如果additivity="true" 会依次顺序传递给name="com"和root但传递后父logger的level级别还是name="com.idccapp"
的INFO,而不是父logger的error(PS:如果传递到name="com"且additivity="false"此时就不会传递给root了)
-->
<root level="error">
<appender-ref ref="STDOUT"/>
</root>
<logger name="com" level="error" additivity="false">
<appender-ref ref="ziPFileOut_ERROR"/>
</logger>
<logger name="com.idccapp" level="INFO" additivity="true">
<appender-ref ref="ziPFileOut_ERROR"/>
</logger>
</configuration>
2.测试类
package com.idccapp;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LogbackDemo {
private static Logger log = LoggerFactory.getLogger(LogbackDemo.class);
public static void main(String[] args) {
log.trace("======trace");
log.debug("======debug");
log.info("======info");
log.warn("======warn2");
log.error("======error");
}
}
相关文章推荐
- Logback日志系统配置攻略
- Logback日志系统配置攻略
- Logback日志系统配置攻略
- Logback日志系统配置攻略
- logback日志系统---logback.xml文件手动配置
- Logback日志系统配置攻略
- Logback日志系统配置攻略
- Logback日志系统配置攻略
- Java日志系统-logback配置
- Logback日志系统配置攻略
- Logback日志系统配置攻略
- Logback日志系统配置攻略
- Linux系统管理实践(12):Syslog系统日志配置
- 日志组件logback的介绍及配置使用方法(一)
- 分布式日志收集系统: Facebook Scribe之配置文件
- 日志组件logback的介绍及配置使用方法(一)
- 日志组件logback的介绍及配置使用方法(二)
- p6spy使用logback作为日志系统
- 配置Tomcat的日志系统
- log4j配置日志系统成功