冷冷冷,冻死了

导航

springboot集成logback使用@Slf4j注入日志

引入依赖-注意需要和自己系统的版本相匹配

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
    <version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
在yml文件处引入logback-spring.xml的配置
logging:
  config: classpath:logback-spring.xml
logback-spring.xml的配置
<?xml version="1.0" encoding="UTF-8"?>

<!-- scan:程序运行时配置文件被修改,是否重新加载。true=重新加载;false=不重新加载;默认为true; -->
<!-- scanPeriod:监测配置文件被修改的时间间隔,scan属性必须设置为true才可生效;默认为1分钟,默认单位是毫秒; -->
<!-- debug:是否打印logback程序运行的日志信息。true=打印;false=不打印;默认为false; -->
<configuration scan="true" scanPeriod="60" debug="false">
    <property name="LOG_PATH" value="log/nbatch"/>
    <property name="LOG_FILE_NAME" value="admin.log"/>
    <property name="LOG_LEVEL" value="info"/>

    <!-- 定义日志格式(复用变量) -->
    <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/>
    <property name="LOG_PATTERN_CONSOLE" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/>

    <property name="MAX_FILE_SIZE" value="100MB" />
    <property name="MAX_HISTORY" value="30" />

    <!-- 控制台输出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
            <!-- 设置字符集 -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <appender name="log_debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/${LOG_FILE_NAME}</file>
        <append>true</append>
        <prudent>false</prudent>
        <!-- 滚动策略(引用MAX_FILE_SIZE) -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/history/%d{yyyy-MM-dd}/${LOG_FILE_NAME}.%i.log</fileNamePattern>
            <!-- 单个文件最大大小 -->
            <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
            <!-- 保留30天历史 -->
            <maxHistory>${MAX_HISTORY}</maxHistory>
        </rollingPolicy>

        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${LOG_PATTERN}</pattern>
            <!-- 设置字符集 -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 根日志级别 -->
    <root level="info">
        <appender-ref ref="console" />
        <appender-ref ref="log_debug" />
    </root>
</configuration>

如果出现日志没有打印的情况
1.引入@Slf4j使用debugger调试出现引入的日志类为NOPLogger
可能是依赖冲突导致的,使用idea相关插件进行排除
2.如果在自己项目中找不到相关日志文件,需要检查自己配置的路径是否正确
log/nbatch:项目根路径
/log/nbatch:电脑目录根路径


            

 

posted on 2025-11-11 16:19  沙湖遇雨  阅读(26)  评论(0)    收藏  举报