引用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}