几个注意点
Logback支持的日志级别.
TRACE < DEBUG < INFO < WARN < ERROR
如果记录请求级别为p,其 logger的有效级别为q,只有则当p>=q时,该请求才会被执行.
用同一名字调用LoggerFactory.getLogger方法所得到的永远都是同一个logger对象的引用.
Logback不限制logger名,目前最好的策略是以logger所在类的名字作为logger名.
在logback里,一个输出目的地称为一个appender。目前支持控制台、文件、远程套接字服务器、MySQL、PostreSQL、Oracle和其他数据库、JMS和远程UNIX Syslog守护进程等。
一个logger可以被关联多个appender。对于logger的每个启用了的记录请求,都将被发送到logger里的全部appender及更高等级的appender。换句话说, appender也继承了logger的层次等级。例如,如果根logger有一个控制台appender, 那么所有启用了的请求都至少会被打印到控制台。如果logger L有额外的文件appender,那么,L和L 后代的所有启用了的请求都将同时打印到控制台和文件。设置logger的additivity为false可以取消这种默认的appender累积行为。
不同日志级别不同输出到不同文件的实现<?xml version="1.0" encoding="UTF-8"?>
%date [%thread] %-5level %logger{36} - %msg%n
app.log
%date %level [%thread] %logger{10} [%file:%line] %msg%n
ERROR
DENY
ACCEPT
app_error.log
%date %level [%thread] %logger{10} [%file:%line] %msg%n
ERROR
ACCEPT
DENY
按时间绕接并压缩的实现<?xml version="1.0" encoding="UTF-8"?>
%date [%thread] %-5level %logger{36} - %msg%n
class="ch.qos.logback.core.rolling.RollingFileAppender">
app.log
%date %level [%thread] %logger{10} [%file:%line] %msg%n
app.%d{yyyy-MM-dd_HH-mm}.log.gz
10
按时间和大小绕接的实现<?xml version="1.0" encoding="UTF-8"?>
%date [%thread] %-5level %logger{36} - %msg%n
class="ch.qos.logback.core.rolling.RollingFileAppender">
app.log
%date %level [%thread] %logger{10} [%file:%line] %msg%n
app.%d{yyyy-MM-dd}.%i.log.gz
10
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
20MB
按大小绕接的实现<?xml version="1.0" encoding="UTF-8"?>
%date [%thread] %-5level %logger{36} - %msg%n
class="ch.qos.logback.core.rolling.RollingFileAppender">
app.log
%date %level [%thread] %logger{10} [%file:%line] %msg%n
app.%i.log.gz
1
10
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
20MB