Log4j&Log4j2 框架 知识点总结

前言

最近重新看了下Log4j & Log4j2. 将知识点总结记录.


正文


Log4j 知识要点
  • Log4j 4大组件

    • Logger - 日志输出
    • Appender - 附着器
    • Layout - 布局
  • Appender 种类

    • Console 控制台输出
    • File 文件输出
    • RollingFile 文件输出(滚动文件输出)
    • 注意: File文件输出和RollingFile文件输出的区别?(RollingFile带滚动机制?)
  • Layout 种类

    • PatternLayout
    • HTMLLayout
    • SimpleLayout
  • PatternLayout

    • %d : (date)日期. (%d {hh:MM:ss. SSSS})
    • %c: (class)所在类
    • %t: (thread)所在线程.
    • %l: (location)所在位置. (类-线程-代码行数 Testlog4.main(TestLog4.java:10))
    • %m%n: 换行符.
    • %p: (priority)优先级.
  • 日志优先级类型

    • DEBUG: 调试级别.
    • INFO: 消息级别.
    • WARN: 警告级别.
    • ERROR: 错误级别.
    • FATAL: 严重错误级别.
    • OFF: 停止级别.
    • ALL: 所有优先级.
    • TRACE: 跟踪级别(比Debug级别更低)

注: 前4种为常用优先级别. 后面几种优先级不是特别常用.


Log4j2 知识要点

Log4j2配置文件一般为xml或者jsn. 以xml配置文件为例子.

  • 标签
  • 标签
    • 标签
    • 标签
    • 标签
      • 标签
      • 标签
      • 策略标签
  • 标签
    • 标签
    • 标签

相关实战

Log4j
  • Maven导入相关包 log4j-1.2.17.jar

 		log4j
 		log4j
 		1.2.17
 	
  • 配置文件 & 默认配置文件 log4j.properties
### root logger
log4j.rootLogger = WARN, Console, R
#first commit
#log4j.rootLogger = DEBUG, Console, R


### console appender
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] [%L] - %m %n

### file appender
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=helloworld.log
log4j.appender.R.MaxFileSize=50MB
log4j.appender.R.MaxBackupIndex=30
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d [%t] %-5p [%c] [%L] -%m %n 

### details
log4j.appender.com.yanxml.arsenal.java=INFO
log4j.appender.com.yanxml.arsenal.java.log4j.simple=WARN

  • public static final Logger logger = Logger.getLogger(Test.class)
  • 输出 logger.info(“”); / logger.debug(“debug”):
  • 结果
2020-06-14 21:24:07,298 [main] WARN  [com.yanxml.arsenal.java.log4j.simple.SimpleLog4jDemo] [12] - [WARN] INFO  
2020-06-14 21:24:07,304 [main] ERROR [com.yanxml.arsenal.java.log4j.simple.SimpleLog4jDemo] [13] - [ERROR] INFO  
2020-06-14 21:24:07,304 [main] FATAL [com.yanxml.arsenal.java.log4j.simple.SimpleLog4jDemo] [14] - [FATAL] INFO 

Log4j-SpringBoot

Log4j2
  • Maven导入相关包
  • 配置文件 log4j2.xml ( )


	
		
			
		
		
		
		
			
		
		
		
			
			
			
				
				
			
				
	
	
	
		
			
			
		
		
		
		
			
			
		
	

  • public static final Logger logger = LoggerManager.getLogger(Test.class)
  • 输出 logger.info(“”); / logger.debug(“debug”):
  • 输出结果
//[11:43:16.0509][TRACE]-com.yanxml.arsenal.java.log4j2.simple.Log4j2Demo.main(Log4j2Demo.java:10)-TRACE
//[11:43:16.0510][DEBUG]-com.yanxml.arsenal.java.log4j2.simple.Log4j2Demo.main(Log4j2Demo.java:11)-DEBUG
//[11:43:16.0511][INFO]-com.yanxml.arsenal.java.log4j2.simple.Log4j2Demo.main(Log4j2Demo.java:12)-INFO
//[11:43:16.0511][WARN]-com.yanxml.arsenal.java.log4j2.simple.Log4j2Demo.main(Log4j2Demo.java:13)-WARN
//[11:43:16.0511][ERROR]-com.yanxml.arsenal.java.log4j2.simple.Log4j2Demo.main(Log4j2Demo.java:14)-ERROR
//[11:43:16.0512][FATAL]-com.yanxml.arsenal.java.log4j2.simple.Log4j2Demo.main(Log4j2Demo.java:15)-FATAL

其余实战内容

其余Log4j实战作用

  • Info Warn Error 分别记录在不同的日志文件内(Log4j2的标签 加3个实现.)
  • 敏感字符串替换
  • 文件按照时间 / 大小创建新的文件 & 分割
    • Log4j2Log4j2
    • Log4jLog4j.appender.R.MaxFileSize

Others 个人总结

  • Log4j总结
  • Log4j基础教程
  • Log4j2配置详解
  • Log4j2 Demos 实战内容

Others-官方文件

  • log4j2.x

Others-优秀好文

  • 最详细的Log4j总结
  • Java日志终极指南
  • 混乱的 Java 日志体系
  • 为什么要使用SLF4J而不是Log4J
  • 聊一聊log4j2配置文件log4j2.xml

你可能感兴趣的:(26.,Logging,-------26.1.,log4j,log4j,log4j2)