关于logback-spring.xml中使用include与同一文件同时输出info,trace等多个level的实例

本文介绍了如何在logback-spring.xml配置文件中使用include指令,并结合实例展示了如何同时输出info和trace级别的日志,适用于Spring项目。通过pom.xml依赖管理,确保logback相关库的正确引入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>

<configuration>
	<!-- 输出到控制台 -->
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>Logback Logs: %date [%thread] %-5level %logger{35} %line - %message%n</pattern>
		</encoder>
	</appender>

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

	<!-- 环境变量LOG_FILE_FLAG设置为true时,输出log文件 -->
	<if condition='property("LOG_FILE_FLAG").equals("true")'>
		<then>
			<include file="src/main/resources/logback-file-spring.xml"/>
		</then>
	</if>

</configuration>

logback-file-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>

<included>
	<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!-- <file>${LOG_PATH}/info.log</file> -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_PATH}/info_%d{yyyy-MM-dd}.log</fileNamePattern>
			<!-- maxHistory最大保留一百天的log文件 -->
			<!-- <maxHistory>100</maxHistory>
			<cleanHistoryOnStart>true</cleanHistoryOnStart> -->
		</rollingPolicy>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>info</level>
			<!-- level是info时,输出,其余向下转移 -->
			<onMatch>ACCEPT</onMatch>
			<onMismatch>NEUTRAL</onMismatch>
		</filter>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>debug</level>
			<!-- level是debug时,输出,其余向下转移 -->
			<onMatch>ACCEPT</onMatch>
			<onMismatch>NEUTRAL</onMismatch>
		</filter>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>trace</level>
			<!-- level是trace时,输出,其余跳过 -->
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
		<encoder>
			<pattern>Logback Logs: %date [%thread] %-5level %logger{35} %line - %message%n</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>

	<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!-- <file>${LOG_PATH}/warn.log</file> -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_PATH}/warn_%d{yyyy-MM-dd}.log</fileNamePattern>
		</rollingPolicy>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>warn</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
		<encoder>
			<pattern>Logback Logs: %date [%thread] %-5level %logger{35} %line - %message%n</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>

	<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!-- <file>${LOG_PATH}/error.log</file> -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_PATH}/error_%d{yyyy-MM-dd}.log</fileNamePattern>
		</rollingPolicy>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>error</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
		<encoder>
			<pattern>Logback Logs: %date [%thread] %-5level %logger{35} %line - %message%n</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>
	<root level="INFO">
		<appender-ref ref="INFO_FILE" />
		<appender-ref ref="WARN_FILE" />
		<appender-ref ref="ERROR_FILE" />
	</root>
</included>

if-then使用的pom.xml

<dependency>
	<groupId>org.codehaus.janino</groupId>
	<artifactId>janino</artifactId>
</dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值