【SpringBoot系列】logback-spring.xml配置不同的输出位置
【摘要】 一.同一个文件输出<?xml version="1.0" encoding="UTF-8"?><configuration> <property name="log.charset" value="utf-8"/> <property name="console.log.pattern" value="%red(%d{yyyy-MM-dd HH:mm:...
一.同一个文件输出
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="log.charset" value="utf-8"/>
<property name="console.log.pattern"
value="%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %green(%msg%n)"/>
<property name="file.log.pattern"
value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"/>
<property name="log.dir" value="./logs/"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${console.log.pattern}</pattern>
<charset>${log.charset}</charset>
</encoder>
</appender>
<appender name="SYSTEM_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.dir}system/%d.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>${file.log.pattern}</pattern>
<charset>${log.charset}</charset>
</encoder>
<append>true</append>
</appender>
<springProfile name="dev,test">
<logger name="com.chat.mapper" level="DEBUG" additivity="false">
<appender-ref ref="STDOUT"/>
<appender-ref ref="SYSTEM_LOG"/>
</logger>
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="SYSTEM_LOG"/>
</root>
</springProfile>
</configuration>
在这个配置中,<logger>
和 <root>
都引用了 STDOUT
和 SYSTEM_LOG
,这意味着所有的日志都会同时输出到控制台和 SYSTEM_LOG
文件中。这样,你就可以在一个地方查看所有的日志,而不是分散在不同的文件中。
二.不同文件输出
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="log.charset" value="utf-8"/>
<property name="console.log.pattern"
value="%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %green(%msg%n)"/>
<property name="file.log.pattern"
value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${console.log.pattern}</pattern>
<charset>${log.charset}</charset>
</encoder>
</appender>
<springProfile name="dev,test">
<property name="log.dir" value="./logs/"/>
<property name="file.log.pattern"
value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX} %-5level [%thread] %logger{36} - %msg%n"/>
<appender name="SYSTEM_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.dir}system/%d.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>${file.log.pattern}</pattern>
<charset>${log.charset}</charset>
</encoder>
<append>true</append>
</appender>
<appender name="SQL_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.dir}/sql/%d.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>${file.log.pattern}</pattern>
<charset>${log.charset}</charset>
</encoder>
<append>true</append>
</appender>
</springProfile>
<!-- 如果是本地环境,则设置控制台打印-->
<springProfile name="dev,test">
<logger name="com.chat.mapper" level="DEBUG" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</springProfile>
<!-- 如果是dev和test环境,则不设置控制台打印,将日志保存到不同的文件-->
<springProfile name="dev,test">
<logger name="com.chat.mapper" level="DEBUG" additivity="false">
<appender-ref ref="SQL_LOG"/>
</logger>
<root level="INFO">
<appender-ref ref="SYSTEM_LOG"/>
</root>
</springProfile>
</configuration>
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)