springboot中引入日志文件生成的配置
先实践后理论
📍引入依赖
<!--web启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.7.2</version>
</dependency>
提示:你没看错,只需要引入这一个
📍文件引入
在resources下边创建logback-spring.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds" debug="false">
<!--定义日志文件的存储地址 -->
<property name="LOG_HOME" value="e:/IDEA_code/empback/src/main/logs" />
<!--<property name="COLOR_PATTERN" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta( %replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''})- %gray(%msg%xEx%n)" />-->
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名 -->
<FileNamePattern>${LOG_HOME}/empback-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数 -->
<MaxHistory>30</MaxHistory>
<maxFileSize>20MB</maxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
</encoder>
</appender>
<!-- 生成 error html格式日志开始 -->
<appender name="HTML" class="ch.qos.logback.core.FileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<!--设置日志级别,过滤掉info日志,只输入error日志-->
<level>ERROR</level>
</filter>
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="ch.qos.logback.classic.html.HTMLLayout">
<pattern>%p%d%msg%M%F{32}%L</pattern>
</layout>
</encoder>
<file>${LOG_HOME}/error-log.html</file>
</appender>
<!-- 生成 error html格式日志结束 -->
<!-- 每天生成一个html格式的日志开始 -->
<appender name="FILE_HTML" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名 -->
<FileNamePattern>${LOG_HOME}/empback-%d{yyyy-MM-dd}.%i.html</FileNamePattern>
<!--日志文件保留天数 -->
<MaxHistory>30</MaxHistory>
<MaxFileSize>10MB</MaxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="ch.qos.logback.classic.html.HTMLLayout">
<pattern>%p%d%msg%M%F{32}%L</pattern>
</layout>
</encoder>
</appender>
<!-- 每天生成一个html格式的日志结束 -->
<!--myibatis log configure -->
<logger name="com.apache.ibatis" level="TRACE" />
<logger name="java.sql.Connection" level="DEBUG" />
<logger name="java.sql.Statement" level="DEBUG" />
<logger name="java.sql.PreparedStatement" level="DEBUG" />
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
<appender-ref ref="HTML" />
<appender-ref ref="FILE_HTML" />
</root>
</configuration>
📍启动
启动就可以了 注意文件路径只指定你自己的
<property name="LOG_HOME" value="e:/IDEA_code/empback/src/main/logs" />
📍logback-spring.xml 和 logback.xml的区别
在 Spring 应用程序中,logback-spring.xml 和 logback.xml 是两个常见的日志配置文件。它们的主要区别在于处理 Spring Profile 时的行为。
-
logback-spring.xml:
- 当使用
logback-spring.xml作为日志配置文件时,Logback 将会对 Spring Profiles 提供更好的支持。它可以自动加载与激活的 Spring Profile 相对应的日志配置。 - 另外,
logback-spring.xml支持基于 Spring Boot 中的外部化配置,可以直接使用 Spring Boot 的属性文件(如application.properties或application.yml)中定义的属性。
- 当使用
-
logback.xml:
- 如果使用标准的
logback.xml作为日志配置文件,则不会获得 Spring Profile 相关的功能。这意味着无法利用 Spring Profile 来自动切换日志配置。 - 此外,
logback.xml通常用于非 Spring 应用程序或者那些不需要特定 Spring Profile 支持的情况。
- 如果使用标准的
总的来说,如果你在 Spring 应用程序中使用 Spring Boot,并且想要利用 Spring Profile 自动切换日志配置,推荐使用 logback-spring.xml。如果你的应用程序不使用 Spring Profile 或者没有集成 Spring Boot,那么使用 logback.xml 也是可以的。
📍logback-spring.xml 需要注意的事项
-
Spring Profile 支持:
logback-spring.xml支持 Spring Profile,可以根据不同的环境自动加载对应的日志配置。这意味着你可以针对不同的环境(如开发、测试、生产)定义不同的日志输出行为。
-
外部化配置:
- 通过使用
logback-spring.xml,你可以直接利用 Spring Boot 的外部化配置特性,例如直接引用 Spring Boot 的属性文件(如application.properties或application.yml)中的属性来配置日志输出。
- 通过使用
-
Spring Boot 应用程序:
- 如果你的应用程序是基于 Spring Boot 构建的,那么推荐使用
logback-spring.xml。它能够更好地集成到 Spring Boot 的自动配置和外部化配置机制中。
- 如果你的应用程序是基于 Spring Boot 构建的,那么推荐使用
-
避免冲突:
- 在使用
logback-spring.xml时,要确保不要与其他的日志框架配置文件产生冲突。尤其是在 Spring Boot 中,由于自动配置的存在,可能会有多个日志配置文件存在,需要避免产生混乱。
- 在使用
-
自定义属性:
- 你可以利用 Spring Boot 的属性文件定义自定义的日志配置属性,并在
logback-spring.xml中引用这些属性来实现灵活的日志配置。
- 你可以利用 Spring Boot 的属性文件定义自定义的日志配置属性,并在
🍚总结
大功告成,撒花致谢🎆🎇🌟,关注我不迷路,带你起飞带你富。