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:电脑目录根路径
浙公网安备 33010602011771号