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>
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐