SpringbootLogback⽇志使⽤,SpringbootLogback详细配置和
⽇志分割
Springboot Logback⽇志使⽤,Springboot Logback详细配置和⽇志分割
Springboot Logback springProperty使⽤,Springboot Logback区分环境
================================
©Copyright 蕃薯耀 2020-12-23
⼀、引⼊Logback⽇志的maven依赖:logback-classic
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
⼆、Springboot Logback 区分环境配置:
1、application.properties:
spring.profiles.active=dev
server.port=6000
t-path=/logback
2、application-dev.properties:
3、application-test.properties:
4、application-prod.properties:
通过fig设置Springboot使⽤的⽇志配置⽂件,这样每个环境都可以使⽤不能的配置。
如果不区分环境,可以直接命名为:l,这样Springboot会⾃动加载。
三、l 配置⽂件详细设置:
1、l
<?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.ConsoleAppender">
<encoder>
<pattern>[${springProfilesActive}]${log_style}</pattern>
</encoder>
</appender>
<!--输出⽇志到⽂件中-->
<appender name="FILE" class="ch.olling.RollingFileAppender">
<file>${LOG_HOME}/${projectName}/${weblogicName}/info.log</file>
spring怎么读取配置<!--不输出ERROR级别的⽇志-->
<!--
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
-
->
<!--根据⽇期滚动输出⽇志策略-->
<rollingPolicy class="ch.olling.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.olling.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.olling.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.olling.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.olling.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>
2、l
<?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="FILE" class="ch.olling.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.olling.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.olling.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.olling.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.olling.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.olling.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="FILE"/>
<appender-ref ref="WARN_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>
</configuration>
3、l
<?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 scope="context" name="loggingConfig" source="fig"/>
-->
<!-- ⽣产环境不在控制台输出 -->
<!--输出⽇志到⽂件中-->
<appender name="FILE" class="ch.olling.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.olling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${projectName}/${weblogicName}/%d{yyyy-MM-dd}-info.log</fileNamePattern>
<!--⽇志保留天数-->
<maxHistory>${logDays}</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log_style}</pattern>
</encoder>
</appender>
<!--警告⽇志输出⽂件-->
<appender name="WARN_FILE" class="ch.olling.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.olling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${projectName}/${weblogicName}/${history}/%d{yyyy-MM-dd}-warn.log</fileNamePattern> <!--⽇志保留天数-->
<maxHistory>${logDays}</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log_style}</pattern>
</encoder>
</appender>
<!--错误⽇志输出⽂件-->
<appender name="ERROR_FILE" class="ch.olling.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.olling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${projectName}/${weblogicName}/%d{yyyy-MM-dd}-error.log</fileNamePattern>
<!--⽇志保留天数-->
<maxHistory>${logDays}</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log_style}</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="FILE"/>
<appender-ref ref="WARN_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>
</configuration>
四、logback的使⽤(LogbackStartupListener.java)
在logback的xml配置⽂件中,有⼀个的配置:
<contextListener class="com.lqy.log.listener.LogbackStartupListener"/>
类⽂件:
package com.lqy.log.listener;
import org.springframework.util.StringUtils;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.spi.LoggerContextListener;
import ch.Context;
import ch.spi.ContextAwareBase;
import ch.spi.LifeCycle;
public class LogbackStartupListener extends ContextAwareBase implements LoggerContextListener, LifeCycle {

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。