常见的日志门面有log4j、logback和log4j2。slf4j是log4j、logback和log4j2的统一开发接口封装。简单来说来说log4j2是基于log4j和logback的升级。目前来说性能最佳、并发最好。被誉为是目前最优秀的Java日志框架。
log4j2的优点
1.性能优化:log4j2是一个现代化的日志框架,采用单个线程写入日志,性能优于log4j、logback.
2.易于配置:log4j2使用基于XML或JSON的配置文件,可以轻松地配置日志记录器、日志级别和日志输出位置。
3.高性能:log4j2具有高效的异步日志记录机制,可以极大地提高应用程序的性能。
4. 与spring框架集成:springboot支持log4j2,可以直接在spirng boot应用程序中使用log4j2.
pom.xml配置
springboot默认使用的日志框架为logback,要想使用log4j2,需要从spring-boot-starter-web中排除对spring-boot-starter-logging依赖。
log4j.xml
要想使log4j2配置生效,需要在resources目录下新建log4j2.xml,springboot会自动找到配置文件,并加载。
日志level
共有8个级别,按照从低到高为:All < Trace < Debug < Info < Warn < Error < Fatal < OFF。
All:最低等级的,用于打开所有日志记录。
Trace:是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出。
Debug:指出细粒度信息事件对调试应用程序是非常有帮助的。
Info:消息在粗粒度级别上突出强调应用程序的运行过程。
Warn:输出警告及warn以下级别的日志。
Error:输出错误信息日志。
Fatal:输出每个严重的错误事件将会导致应用程序的退出的日志。
OFF:最高等级的,用于关闭所有日志记录。
日志配置信息的符号解释
-X号 # X信息输出时左对齐;
%p # 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
%d # 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%r # 输出自应用启动到输出该log信息耗费的毫秒数
%c # 输出日志信息所属的类目,通常就是所在类的全名
%t # 输出产生该日志事件的线程名
%l # 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)
%x # 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
%% # 输出一个”%”字符
%F # 输出日志消息产生时所在的文件名称
%L # 输出代码中的行号
%m # 输出代码中指定的消息,产生的日志具体信息
%n # 输出一个回车换行符
学习建议
就个人而言,我感觉学习是一个循序渐进的过程,学习一个东西,一门技术。一开始并不需要掌握所有的核心技术点,一开始学习,我认为只要能用、会用就已经很好了。然后在日后不断地工作和学习中慢慢填充。如果一开始看到各种文章、各种讲解,就会感觉比较乱,内心可能会认为有非常多的知识点,谁都一样,不可能一次性掌握所有的知识点,所有学习不能着急,不然会产生自我焦虑。所以慢慢学,持续学,才是正确之路。
各位小伙伴、加油!!!
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: lzxmw777