引用JAR
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>1.6.6</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>1.6.6</version> </dependency>
logback加载配置时,按以下顺序查找 logback.groovy ,logback-test.xml,logback.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- --> <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <Pattern>%-4level %d{HH:mm:ss.SSS} %thread %logger - %msg%n</Pattern> </encoder> </appender> <!-- level ERROR --> <appender name="file—error" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>WARN</level> <!-- <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch>--> </filter> <file>${catalina.base}/groupmsg_error.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>crash_error.%d{yyyy-MM-dd}.log</FileNamePattern> <MaxHistory>30</MaxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>[%-4level][%d{HH:mm:ss.SSS}][%thread][%logger] - %msg%n </pattern> </layout> </appender> <appender name="file—info" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>DEBUG</level> </filter> <file>${catalina.base}/groupmsg_info.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>groupmsg_info.%d{yyyy-MM-dd}.log</FileNamePattern> <MaxHistory>30</MaxHistory> </rollingPolicy> <encoder> <pattern> [%-4level][%d{HH:mm:ss.SSS}][%thread][%logger] - %msg%n </pattern> </encoder> </appender> <appender name="file—xiao" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>DEBUG</level> </filter> <file>${catalina.base}/groupmsg_xiao.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>groupmsg_xiao.%d{yyyy-MM-dd}.log</FileNamePattern> <MaxHistory>30</MaxHistory> </rollingPolicy> <encoder> <pattern> [%mdc{user}][%-4level][%d{HH:mm:ss.SSS}][%thread][%logger] - %msg%n </pattern> </encoder> </appender> <logger name="java.sql.Connection"> <level value="WARN" /> </logger> <logger name="java.sql.Statement"> <level value="WARN" /> </logger> <logger name="com.ibatis"> <level value="WARN" /> </logger> <logger name="org.springframework"> <level value="INFO"></level> </logger> <logger name="com.xiao.test" additivity="false"> <level value="DEBUG"></level> <appender-ref ref="file—xiao" /> </logger> <root> <level value="INFO" /> <appender-ref ref="stdout" /> <appender-ref ref="file—error" /> <appender-ref ref="file—info" /> </root> </configuration>
logback对应的Converter,用来解析内容格式的
{exception=ch.qos.logback.classic.pattern.ThrowableProxyConverter, nopex=ch.qos.logback.classic.pattern.NopThrowableInformationConverter, yellow=ch.qos.logback.core.pattern.color.YellowCompositeConverter, boldBlue=ch.qos.logback.core.pattern.color.BoldBlueCompositeConverter, highlight=ch.qos.logback.classic.pattern.color.HighlightingCompositeConverter, level=ch.qos.logback.classic.pattern.LevelConverter, file=ch.qos.logback.classic.pattern.FileOfCallerConverter, thread=ch.qos.logback.classic.pattern.ThreadConverter, black=ch.qos.logback.core.pattern.color.BlackCompositeConverter, mdc=ch.qos.logback.classic.pattern.MDCConverter, lsn=ch.qos.logback.classic.pattern.LocalSequenceNumberConverter, white=ch.qos.logback.core.pattern.color.WhiteCompositeConverter, class=ch.qos.logback.classic.pattern.ClassOfCallerConverter, property=ch.qos.logback.classic.pattern.PropertyConverter, rootException=ch.qos.logback.classic.pattern.RootCauseFirstThrowableProxyConverter, relative=ch.qos.logback.classic.pattern.RelativeTimeConverter, msg=ch.qos.logback.classic.pattern.MessageConverter, le=ch.qos.logback.classic.pattern.LevelConverter, marker=ch.qos.logback.classic.pattern.MarkerConverter, cn=ch.qos.logback.classic.pattern.ContextNameConverter, boldRed=ch.qos.logback.core.pattern.color.BoldRedCompositeConverter, caller=ch.qos.logback.classic.pattern.CallerDataConverter, lo=ch.qos.logback.classic.pattern.LoggerConverter, F=ch.qos.logback.classic.pattern.FileOfCallerConverter, boldCyan=ch.qos.logback.core.pattern.color.BoldCyanCompositeConverter, C=ch.qos.logback.classic.pattern.ClassOfCallerConverter, L=ch.qos.logback.classic.pattern.LineOfCallerConverter, M=ch.qos.logback.classic.pattern.MethodOfCallerConverter, line=ch.qos.logback.classic.pattern.LineOfCallerConverter, boldWhite=ch.qos.logback.core.pattern.color.BoldWhiteCompositeConverter, date=ch.qos.logback.classic.pattern.DateConverter, xException=ch.qos.logback.classic.pattern.ExtendedThrowableProxyConverter, BARE=ch.qos.logback.core.pattern.IdentityCompositeConverter, logger=ch.qos.logback.classic.pattern.LoggerConverter, nopexception=ch.qos.logback.classic.pattern.NopThrowableInformationConverter, X=ch.qos.logback.classic.pattern.MDCConverter, contextName=ch.qos.logback.classic.pattern.ContextNameConverter, boldGreen=ch.qos.logback.core.pattern.color.BoldGreenCompositeConverter, throwable=ch.qos.logback.classic.pattern.ThrowableProxyConverter, ex=ch.qos.logback.classic.pattern.ThrowableProxyConverter, d=ch.qos.logback.classic.pattern.DateConverter, boldYellow=ch.qos.logback.core.pattern.color.BoldYellowCompositeConverter, c=ch.qos.logback.classic.pattern.LoggerConverter, green=ch.qos.logback.core.pattern.color.GreenCompositeConverter, xThrowable=ch.qos.logback.classic.pattern.ExtendedThrowableProxyConverter, n=ch.qos.logback.classic.pattern.LineSeparatorConverter, boldMagenta=ch.qos.logback.core.pattern.color.BoldMagentaCompositeConverter, m=ch.qos.logback.classic.pattern.MessageConverter, gray=ch.qos.logback.core.pattern.color.GrayCompositeConverter, replace=ch.qos.logback.core.pattern.ReplacingCompositeConverter, message=ch.qos.logback.classic.pattern.MessageConverter, red=ch.qos.logback.core.pattern.color.RedCompositeConverter, t=ch.qos.logback.classic.pattern.ThreadConverter, magenta=ch.qos.logback.core.pattern.color.MagentaCompositeConverter, cyan=ch.qos.logback.core.pattern.color.CyanCompositeConverter, xEx=ch.qos.logback.classic.pattern.ExtendedThrowableProxyConverter, blue=ch.qos.logback.core.pattern.color.BlueCompositeConverter, r=ch.qos.logback.classic.pattern.RelativeTimeConverter, p=ch.qos.logback.classic.pattern.LevelConverter, rEx=ch.qos.logback.classic.pattern.RootCauseFirstThrowableProxyConverter, method=ch.qos.logback.classic.pattern.MethodOfCallerConverter}