logback.xml 按天以及文件大小配置

继上篇文章,为了解决日志文件太大的问题,所以将日志文件拆分存储。

<!-- 级别从高到低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL -->
<!-- 日志输出规则 根据当前ROOT 级别,日志输出时,级别高于root默认的级别时 会输出 -->
<!-- 以下 每个配置的 filter 是过滤掉输出文件里面,会出现高级别文件,依然出现低级别的日志信息,通过filter 过滤只记录本级别的日志 -->
<!-- scan 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 -->
<!-- scanPeriod 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration scan="true" debug="true">
	<!-- 动态日志级别 -->
	<jmxConfigurator />
	<!-- 定义日志文件 输出位置 -->
	<!-- <property name="log_dir" value="C:/test" /> -->
	<property name="debug" value="debug" />
	<property name="info" value="info" />
	<property name="warn" value="warn" />
	<property name="error" value="error" />

	<property name="log_dir" value="logs" />
	<property name="maxFileSize" value="100MB" />
	<property name="totalSizeCap" value="10GB" />
	<!-- 日志最大的历史 30天 -->
	<property name="maxHistory" value="15" />

	<property name="charset" value="UTF-8" />
	<property name="logStyle" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" />
	<!-- ConsoleAppender 控制台输出日志 -->
	<!-- 自定义高亮颜色 -->
	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
		<withJansi>false</withJansi>
		<encoder>
			<pattern>
				%d{yyyy-MM-dd HH:mm:ss.SSS} %-10([%thread]) %-5level %logger{50} (%file:%line\) - %msg%n
			</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>

	<!-- ERROR级别日志 -->
	<!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 RollingFileAppender -->
	<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!-- 过滤器,只记录WARN级别的日志 -->
		<!-- 果日志级别等于配置级别,过滤器会根据onMath 和 onMismatch接收或拒绝日志。 -->
		<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.SizeAndTimeBasedRollingPolicy">
			<fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/${error}-%i.log</fileNamePattern>
			<maxHistory>${maxHistory}</maxHistory>
			<maxFileSize>${maxFileSize}</maxFileSize>
			<totalSizeCap>${totalSizeCap}</totalSizeCap>
		</rollingPolicy>
		<encoder>
			<pattern>${logStyle}</pattern>
			<charset>${charset}</charset>
		</encoder>
	</appender>

	<appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<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.SizeAndTimeBasedRollingPolicy">
			<fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/${warn}-%i.log</fileNamePattern>
			<maxHistory>${maxHistory}</maxHistory>
			<maxFileSize>${maxFileSize}</maxFileSize>
			<totalSizeCap>${totalSizeCap}</totalSizeCap>
		</rollingPolicy>
		<encoder>
			<pattern>${logStyle}</pattern>
			<charset>${charset}</charset>
		</encoder>
	</appender>

	<!--INFO-->
	<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>INFO</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
			<fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/${info}-%i.log</fileNamePattern>
			<maxHistory>${maxHistory}</maxHistory>
			<maxFileSize>${maxFileSize}</maxFileSize>
			<totalSizeCap>${totalSizeCap}</totalSizeCap>
		</rollingPolicy>
		<encoder>
			<pattern>${logStyle}</pattern>
			<charset>${charset}</charset>
		</encoder>
	</appender>

	<!--DEBUG 日志记录-->
	<appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>DEBUG</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>

		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
			<fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/${debug}-%i.log</fileNamePattern>
			<maxHistory>${maxHistory}</maxHistory>
			<maxFileSize>${maxFileSize}</maxFileSize>
			<totalSizeCap>${totalSizeCap}</totalSizeCap>
		</rollingPolicy>
		<encoder>
			<pattern>${logStyle}</pattern>
			<charset>${charset}</charset>
		</encoder>
	</appender>


	<!-- root级别 DEBUG -->
	<root>
		<!-- 打印debug级别日志及以上级别日志 -->
		<level value="DEBUG" />
		<!-- 控制台输出 -->
		<appender-ref ref="console" />
		<!-- 文件输出 -->
		<appender-ref ref="ERROR" />
		<appender-ref ref="INFO" />
		<appender-ref ref="WARN" />
		<appender-ref ref="DEBUG" />
	</root>

	<!-- 指定包下的日志输出级别 -->
	<logger name="org.apache.http" level="ERROR"></logger>
	<logger name="com.netflix.discovery" level="ERROR"></logger>
	<logger name="com.netflix.loadbalancer" level="ERROR"></logger>
	<logger name="com.zaxxer.hikari.pool" level="ERROR"></logger>
</configuration>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
logback-spring.xml 是使用 Spring Boot 框架进行日志记录的配置文件之一。它使用 Logback 库,这是一个广泛使用的 Java 日志框架。 以下是一个 logback-spring.xml 配置文件的例子,以及其每个配置选项的说明: ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 控制台输出 --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 日志文件输出 --> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/mylog.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logs/mylog.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 日志级别设置 --> <root level="INFO"> <appender-ref ref="console" /> <appender-ref ref="file" /> </root> </configuration> ``` 配置文件中的 `<configuration>` 标签是必需的,它包含了整个配置文件。下面是每个配置选项的详细说明: - `<appender>`:定义一个日志输出目标,可以是控制台或文件。`name` 属性是必需的,用于引用此 appender。`class` 属性指定 appender 的实现类。 - `<encoder>`:定义输出格式,将日志信息转换为文本。`pattern` 元素是必需的,用于指定输出格式。 - `<file>`:定义日志文件名,可以是相对路径或绝对路径。 - `<rollingPolicy>`:定义滚动策略,用于在日志文件达到一定大小或时间间隔时,将当前日志文件重命名并创建新的日志文件。`class` 属性指定滚动策略的实现类。`fileNamePattern` 元素指定日志文件名的格式。`maxHistory` 元素定义保留的历史日志文件数目。 - `<root>`:定义日志记录器的根节点,用于指定日志级别和输出目标。`level` 属性指定日志记录器的级别,包括 TRACE、DEBUG、INFO、WARN、ERROR 和 OFF。`appender-ref` 元素用于指定输出目标,可以是之前定义的 appender。 希望这个简单的logback-spring.xml配置例子能够对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值