As we All know
日志,通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节。但是,这丝毫不影响它在任何一个系统中的重要的地位。
part 1 日志框架浅析SLF4J,即简单日志门面(Simple Logging Facade for Java)。目前来说,Logback是SLF4J的最佳实现。
从设计模式的角度考虑,它是用来在log和代码层之间起到门面的作用。配置SLF4J是非常简单的一件事,只要将你打算使用的日志系统对应的jar包加入到项目中,SLF4J就会自动选择使用你加入的日志系统。使用 slf4j 提供的接口,可隐藏日志的具体实现。这与jdbc相似,使用jdbc也就避免了不同的具体数据库。
SLF4J,即简单日志门面(
Simple Logging Facade for Java)。目前来说,Logback是SLF4J的最佳实现。
从设计模式的角度考虑,它是用来在log和代码层之间起到门面的作用。配置SLF4J是非常简单的一件事,只
要将你打算使用的日志系统对应的jar包加入到项目中,SLF4J就会自动选择使用你加入的日志系统。使用slf4j
提供的接口,可隐藏日志的具体实现。这与jdbc相似,使用jdbc也就避免了不同的具体数据库。
发展历程
1996 log4j = log for java apache 成为了日志标准
2002 jul = java util logging sun
jcl = jakarta commons logging 日志接口
2006 logback = log4j 升级版 slf4j = simple logging facade for java 日志门面接口
2012 log4j 2 apache
Commons logging || slf4j(主流 +logback)
part 2 日志基本格式日志格式:时间日期+日志级别+进程ID+分隔符(正式开始)+线程名+Logger名(类名)+日志内容
日志级别:TRACE 日志地址:默认输出到控制台 日志文件输出 1)在application中添加logging.path 配置path,默认输出的文件名是spring.log 2)在application中添加logging.file 配置file,默认输出路径是项目当前路径,[可配置绝对路径] 注:二者不能同时使用,如若同时使用,则只有logging.file生效 默认情况下,日志文件的大小达到10MB时会切分一次,产生新的日志文件 日志级别控制 logging.level日志级别控制前缀,*为包名或Logger名 LEVEL:选项TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF 如:logging.level.root=warn#全局输出级别 自定义日志配置 根据不同的日志系统,可以按规则配置文件名,并放在src/main/resources下,就能被加载: Logback:logback-spring.xml,logback-spring.groovy,logback.xml,logback.groovy Log4j:log4j-spring.properties,log4j-spring.xml,log4j.properties,log4j.xml Log4j2:log4j2-spring.xml,log4j2.xml JDK(JavaUtilLogging):logging.properties 官方推荐优先使用带有-spring的文件名作为日志配置(如使用logback-spring.xml,而不是logback.xml) 输出格式 logging.pattern.console搭配正则表达式,配置日志内容的格式 logging.pattern.file搭配正则表达式,配置日志文件名称的格式 注意:这两个配置项只对文件中的日志生效,控制台的格式不变 如logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss}[%thread]%-5level%logger-%msg%n 各符号含义如下: %d{yyyy/MM/dd-HH:mm:ss}——日志输出时间 %thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用 %-5level——日志级别,并且使用5个字符靠左对齐 %logger-——日志输出者的名字 %msg——日志消息 %n——平台的换行符 去除原日志框架 引入新框架



