springboot集成日志logback
前言:
Logback是由log4j创始人设计的又一个开源日志组件。
目前,logback分为三个模块:logback-core,logback-classic和logback-access。是对log4j日志展示进一步改进
logback-core
它是 Logback 的核心模块,提供了基本的日志功能。它支持多种输出格式和输出目标,包括控制台输出、文件输出和 Socket 输出。logback-core 可以与其他日志框架集成,例如 log4j 和 JDK Logging。
logback-classic
它是 Logback 的经典模块,是 log4j 的改进版。它提供了更强大的日志功能,并且向下兼容 log4j。它还支持 SLF4J,可以在不修改代码的情况下将应用程序从一个日志框架切换到另一个日志框架。
logback-access
它是 Logback 的访问模块,提供了基于 HTTP 请求的访问日志记录功能。使用 logback-access,可以记录每个请求的详细信息,包括请求方法、URL、响应状态码等。
日志级别
高----------------------------------------------------->低
OFF>ERROR>WANING>INFO>DEBUG>ALL
日志级别越高输出的日志信息越少
ALL:最低等级的,用于打开所有日志记录 TRACE:是最详细的日志信息,通常用于诊断问题和追踪代码执行流程。在生产环境中,应该关闭TRACE级别的日志输出,以避免影响系统性能 DEBUG:是调试信息,用于调试应用程序。在生产环境中,建议将DEBUG级别的日志输出关闭 INFO:是普通的信息记录,通常用于向用户展示可读的操作结果或执行状态。例如,当用户成功登录时,可以记录一条 INFO 级别的日志 WARN:表示警告信息,通常用于记录一些不严重但需要注意的问题。例如,当系统资源紧张时,可以记录一条WARN级别的日志 ERROR:表示错误信息,通常用于记录系统运行时发生的错误。例如,当数据库连接失败时,可以记录一条ERROR级别的日志 FATAL:表示致命错误,通常用于记录系统崩溃或无法恢复的错误。例如,当出现内存泄漏或硬盘损坏时,可以记录一条FATAL级别的日志 OFF:最高等级的,用于关闭所有日志记录。
日志分类:
rootLogger 跟日志:
这是全局日志的等级,日志输出的位置,必须存在
logger 子日志:
这是包级别的日志,指定那些包输出日志信息
集成整合步骤:
Springboot默认集成了logback,不需要引入其他Jar包,直接导入配置文件即可
Springboot默认日志级别INFO
默认日志输出格式:
修改日志级别 application.properties
#日志相关设置 #设置根日志的级别 logging.level.root=info #设置子日志级别---输出到控制台 logging.level.包名=debug #设置日志信息输出到指定文件,E:\\ 指E盘根目录 a.log指日志文件,会自动创建文件 logging.file.name=E:\\a.log
自定义日志输出格式:
resources文件下添加文件logback.xml
注意:
logback的配置文件必须放在项目根目录中
名字必须为logback.xml
logback.xml文件
<?xml version="1.0" encoding="UTF-8" ?> <configuration> <!--定义项目中日志输出位置--> <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> <!--定义项目的日志输出格式--> <!--定义项目的日志输出格式--> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern> [%p] %d{yyyy-MM-dd HH:mm:ss} %m %n</pattern> </layout> </appender> <!--项目中跟日志控制--> <root level="INFO"> <appender-ref ref="stdout"/> </root> <!--项目中指定包日志控制--> <logger name="com.gao.service" level="DEBUG"/> </configuration>
日志文件中配置:
Appender 为日志输出目的地,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
Layout:日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局), org.apache.log4j.PatternLayout(可以灵活地指定布局模式), org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下
%m 输出代码中指定的消息 %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL %r 输出自应用启动到输出该log信息耗费的毫秒数 %c 输出所属的类目,通常就是所在类的全名 %t 输出产生该日志事件的线程名 %n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n” %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,
比如:%d{yyy MMM ddHH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921 %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
举例: Testlog4.main(TestLog4.java: 10 )
项目中使用:
private Logger logger = org.slf4j.LoggerFactory.getLogger(this.getClass()); logger.debug("debug接收的信息是: "+xxx); logger.info("info接收的信息是: "+xxx; logger.warn("warn接收的信息是: "+xxx); logger.error("error接收的信息是: "+xxx );
参考教程:https://juejin.cn/post/7078552015755804686