版权声明:jathams(人勤事事易,人懒事事难) https://blog.csdn.net/Jatham/article/details/82999320
logback使用
-
依赖jar文件
logback-core-xxx.jar logback-classic-xxx.jar
-
logback.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!-- %d{pattern}日期 %m或者%msg为信息 %M为method %L为行号 %thread线程名称 %n换行 %-5level %C{length} | %class{length} %c {length } | %lo {length } | %logger {length } 输出日志的logger名,可有一个整形参数,功能是缩短logger名,设置为0表示只输入logger最右边点符号之后的字符串。 Conversion specifier Logger name Result --> <!--<pattern>%d{HH:mm:ss} %-5level %logger{36} -%L %n%msg%n</pattern> --> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %C{36} %M %L - %msg %m %n</pattern> </encoder> </appender> <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 日志文件位置 --> <file>logs/sdjk_app.log</file> <!-- 基于时间的rolling策略,默认是1h --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logs/projectName.%d{yyyy-MM-dd}.log</fileNamePattern> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss} %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 第三方组件的日志 --> <logger name="org.springframework" level="ERROR"/> <logger name="org.apache.shiro" level="ERROR"/> <logger name="com.alibaba" level="ERROR"/> <logger name="net.sf.ehcache" level="ERROR"/> <logger name="org.apache.commons" level="ERROR"/> <logger name="freemarker" level="ERROR"/> <logger name="net.bull.javamelody" level="ERROR"/> <logger name="org.jboss.logging" level="ERROR"/> <logger name="org.quartz" level="ERROR"/> <logger name="org.hibernate.validator" level="ERROR"/> <logger name="org.eclipse" level="ERROR"/> <!-- 配置日志级别 all<debug<info<warn<error<fatal<off默认为debug off将不会输入任何日志 --> <root level="off"> <appender-ref ref="console" /> <appender-ref ref="rollingFile" /> </root> </configuration>
追加pattern说明
转换符 作用
c {length } lo {length } logger {length }输出日志的logger名,可有一个整形参数,功能是缩短logger名,设置为0表示只输入logger最右边点符号之后的字符串。
%logger mainPackage.sub.sample.BarmainPackage.sub.sample.Bar
%logger{0} mainPackage.sub.sample.BarBar
%logger{5} mainPackage.sub.sample.Barm.s.s.Bar
%logger{10} mainPackage.sub.sample.Barm.s.s.Bar
%logger{15} mainPackage.sub.sample.Barm.s.sample.Bar
%logger{16} mainPackage.sub.sample.Barm.sub.sample.Bar
%logger{26} mainPackage.sub.sample.BarmainPackage.sub.sample.Bar
C {length } class {length }输出执行记录请求的调用者的全限定名。参数与上面的一样。尽量避免使用,除非执行速度不造成任何问题。
contextName | cn 输出上下文名称。
d {pattern } | date {pattern }输出日志的打印日志,模式语法与java.text.SimpleDateFormat 兼容。
%d 2006-10-20 14:06:49,812
%date 2006-10-20 14:06:49,812
%date{ISO8601} 2006-10-20 14:06:49,812
%date{HH:mm:ss.SSS}14:06:49.812
%date{dd MMM yyyy ;HH:mm:ss.SSS}20 oct. 2006;14:06:49.812F /
file输出执行记录请求的java源文件名。尽量避免使用,除非执行速度不造成任何问题。
caller{depth}caller{depth, evaluator-1, … evaluator-n}输出生成日志的调用者的位置信息,整数选项表示输出信息深度。例如,
%caller{2} 输出为:0 [main] DEBUG - logging statement
Caller+0 at mainPackage.sub.sample.Bar.sampleMethodName(Bar.java:22)
Caller+1 at mainPackage.sub.sample.Bar.createLoggingRequest(Bar.java:17)例如, %caller{3} 输出为:16 [main] DEBUG - logging statement
Caller+0 at mainPackage.sub.sample.Bar.sampleMethodName(Bar.java:22)
Caller+1 at mainPackage.sub.sample.Bar.createLoggingRequest(Bar.java:17)
Caller+2 at mainPackage.ConfigTester.main(ConfigTester.java:38)
L / line输出执行日志请求的行号。尽量避免使用,除非执行速度不造成任何问题。
m / msg / message输出应用程序提供的信息。
M / method输出执行日志请求的方法名。尽量避免使用,除非执行速度不造成任何问题。
n输出平台先关的分行符“\n”或者“\r\n”。
p / le / level输出日志级别。
r / relative输出从程序启动到创建日志记录的时间,单位是毫秒
t / thread输出产生日志的线程名。
replace(p ){r, t}p 为日志内容,r 是正则表达式,将p 中符合r 的内容替换为t 。