几个注意点

  1. Logback支持的日志级别.

    TRACE < DEBUG < INFO < WARN < ERROR

  2. 如果记录请求级别为p,其 logger的有效级别为q,只有则当p>=q时,该请求才会被执行.

  3. 用同一名字调用LoggerFactory.getLogger方法所得到的永远都是同一个logger对象的引用.

  4. Logback不限制logger名,目前最好的策略是以logger所在类的名字作为logger名.

  5. 在logback里,一个输出目的地称为一个appender。目前支持控制台、文件、远程套接字服务器、MySQL、PostreSQL、Oracle和其他数据库、JMS和远程UNIX Syslog守护进程等。

  6. 一个logger可以被关联多个appender。对于logger的每个启用了的记录请求,都将被发送到logger里的全部appender及更高等级的appender。换句话说, appender也继承了logger的层次等级。例如,如果根logger有一个控制台appender, 那么所有启用了的请求都至少会被打印到控制台。如果logger L有额外的文件appender,那么,L和L 后代的所有启用了的请求都将同时打印到控制台和文件。设置logger的additivity为false可以取消这种默认的appender累积行为


不同日志级别不同输出到不同文件的实现



	
		
			%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
		
	

	
		
		
		
	


按时间绕接并压缩的实现



	
		
			%date [%thread] %-5level %logger{36} - %msg%n
			
		
	

	
		app.log
		
			%date %level [%thread] %logger{10} [%file:%line] %msg%n
			
		
		
			app.%d{yyyy-MM-dd_HH-mm}.log.gz
			
			10
		
	


	
		
		
	


按时间和大小绕接的实现



	
		
			%date [%thread] %-5level %logger{36} - %msg%n
			
		
	

	
		app.log
		
			%date %level [%thread] %logger{10} [%file:%line] %msg%n
			
		
		
			
			app.%d{yyyy-MM-dd}.%i.log.gz
			
			10
			
				20MB
			
		
	


	
		
		
	


按大小绕接的实现



	
		
			%date [%thread] %-5level %logger{36} - %msg%n
			
		
	

	
		app.log
		
			%date %level [%thread] %logger{10} [%file:%line] %msg%n
			
		
		
			app.%i.log.gz
			1
			10
		
		
			20MB