SpringBoot 项目配置日志输出

时间:2025-02-21 08:12:39
<configuration debug="true"> <!-- 引用Spring Boot全局配置文件中的日期格式配置项 --> <springProperty scope="context" name="dateformat" source="logging.pattern.dateformat" defaultValue="yyyy-MM-dd HH:mm:ss.SSS"/> <springProperty scope="context" name="APP_NAME" source="spring.application.name"/> <springProperty scope="context" name="LOG_FILE" source="logging.file.path"/> <!-- 定义颜色编码 --> <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/> <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/> <!-- 定义日志输出到控制台的appender --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%clr(%d{${dateformat}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr([%15.15t]){faint} [%-40.40logger{39}] %clr(%msg%n){faint}%wEx</pattern> </encoder> </appender> <!-- 开发环境配置 --> <springProfile name="local"> <root level="DEBUG"> <appender-ref ref="STDOUT" /> </root> <!-- 开发环境专属的详细日志 --> <logger name="com.tylerzhong" level="TRACE" additivity="false"> <appender-ref ref="STDOUT" /> </logger> </springProfile> <springProfile name="!local"> <!-- 文件日志:输出全部日志到文件 --> <appender name="FILE_INFO_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_FILE}/${APP_NAME}.log</file> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>ACCEPT</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_FILE}/${APP_NAME}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxHistory>180</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>50MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{${dateformat}} [%thread] %-5level %logger{36} - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <!-- 错误日志:用于将错误日志输出到独立文件 --> <appender name="FILE_ERROR_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_FILE}/error-${APP_NAME}.log</file> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_FILE}/error-${APP_NAME}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxHistory>180</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>50MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{${dateformat}} [%thread] %-5level %logger{36} - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <root level="INFO"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE_INFO_LOG" /> <appender-ref ref="FILE_ERROR_LOG" /> </root> </springProfile> </configuration>