logback日志文件保存配置

1.按日期输出一个文件

即天天生成一个日志文件,会打包成zip包保存30天的日志文件,配置以下:app

<appender name="info"
	          class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${dcs_app_path}/logs/info.log</file><!--配置的路径-->
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>info</level><!--只打info日志-->
		</filter>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!-- rollover daily -->
			<fileNamePattern>${dcs_app_path}/logs/info.%d{yyyy-MM-dd}.zip
			</fileNamePattern>
			<!-- keep 30 days' worth of history -->
			<maxHistory>30</maxHistory>
		</rollingPolicy>
		<encoder>
			<charset>UTF-8</charset>
			<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
		</encoder>
	</appender>

2.按文件大小输出一个文件

即设置日志文件的大小10MB,打包成zip包保存30个日志文件,配置以下:日志

<appender name="info"
	          class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${dcs_app_path}/logs/info.log</file>
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>info</level>
		</filter>
		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
			<fileNamePattern>${dcs_app_path}/logs/info.%i.log.zip</fileNamePattern>
			<minIndex>1</minIndex>
			<maxIndex>30</maxIndex>
		</rollingPolicy>
		<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<maxFileSize>10MB</maxFileSize>
		</triggeringPolicy>
		<encoder>
			<charset>UTF-8</charset>
			<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
		</encoder>
	</appender>

3.按时间的同时又按大小输出

即天天输出多个大小固定的日志文件,保存30天日志,天天的日志文件大于10MB时从新写一个日志文件。配置以下:code

<appender name="info"
	          class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${dcs_app_path}/logs/info.log</file>
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>info</level>
		</filter>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!-- rollover daily -->
			<fileNamePattern>${dcs_app_path}/logs/info.%d{yyyy-MM-dd}.%i.zip
			</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<!-- or whenever the file size reaches 100MB -->
				<maxFileSize>10MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
			<!-- keep 30 days' worth of history -->
			<maxHistory>30</maxHistory>
		</rollingPolicy>
		<encoder>
			<charset>UTF-8</charset>
			<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
		</encoder>
	</appender>