欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何在Springboot中完全配置和利用Logback日志系统

最编程 2024-02-23 22:36:27
...
<?xml version="1.0" encoding="UTF-8"?>

<!--默认每隔一分钟扫描此配置文件的修改并重新加载-->
<!-- <configuration scan="true" scanPeriod="60 seconds"> -->
<configuration>


<contextListener class="com.lqy.log.listener.LogbackStartupListener"/>

<!--定义日志文件的存储地址 勿在LogBack的配置中使用相对路径-->
<property name="projectName" value="logback"/>
<property name="LOG_HOME" value="E:/logs"/>
<property name="logDays" value="30"/>
<property name="history" value="history"/>
<property name="log_style" value="[%level] [%date{yyyy-MM-dd HH:mm:ss.SSS}] %thread %class.%method:%line%n%msg%n%n"/>

<!-- 读取spring配置文件的变量 -->
<springProperty name="springProfilesActive" source="spring.profiles.active"/>

<!--控制台输出-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[${springProfilesActive}]${log_style}</pattern>
</encoder>
</appender>


<!--输出日志到文件中-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/${projectName}/${weblogicName}/info.log</file>
<!--不输出ERROR级别的日志-->
<!--
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
-->

<!--根据日期滚动输出日志策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${projectName}/${weblogicName}/${history}/%d{yyyy-MM-dd}-info.log</fileNamePattern>
<!--日志保留天数-->
<maxHistory>${logDays}</maxHistory>
</rollingPolicy>

<encoder>
<pattern>[${springProfilesActive}]${log_style}</pattern>
</encoder>

</appender>


<!--警告日志输出文件-->
<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/${projectName}/${weblogicName}/warn.log</file>
<!--只输出ERROR级别的日志-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>

<!--根据日期滚动输出日志策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${projectName}/${weblogicName}/${history}/%d{yyyy-MM-dd}-warn.log</fileNamePattern>
<!--日志保留天数-->
<maxHistory>${logDays}</maxHistory>
</rollingPolicy>

<encoder>
<pattern>[${springProfilesActive}]${log_style}</pattern>
</encoder>

</appender>


<!--错误日志输出文件-->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/${projectName}/${weblogicName}/error.log</file>
<!--只输出ERROR级别的日志-->
<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_HOME}/${projectName}/${weblogicName}/${history}/%d{yyyy-MM-dd}-error.log</fileNamePattern>
<!--日志保留天数-->
<maxHistory>${logDays}</maxHistory>
</rollingPolicy>

<encoder>
<pattern>[${springProfilesActive}]${log_style}</pattern>
</encoder>

</appender>


<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
<appender-ref ref="WARN_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>

</configuration>