logback配置

<?xml version="1.0" encoding="UTF-8"?>
<!--scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。-->
<configuration scan="true" scanPeriod="10 seconds">

<contextName>JPANAME</contextName>
<property name="log.path" value="logs/logs"/>
<property name="server.name" value="fgzs-log"/>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/>
<!-- .%d{yyyyMMdd}.%i.log.gz 表示会压缩文件 -->
<property name="log.info_file" value="${log.path}/${server.name}.%d{yyyyMMdd}.%i.log"/>
<property name="log.error_file" value="${log.path}/error/${server.name}.%d{yyyyMMdd}.%i.log"/>
<property name="log.debug_file" value="${log.path}/debug/${server.name}.%d{yyyyMMdd}.%i.log"/>

<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>

<!-- 异步info stat -->
<appender name="info_fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${log.pattern}</pattern>
</encoder>

<!-- 日志级别过滤器 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 日志级别过滤器 -->
<level>INFO</level>
<!-- 符合要求的日志级别,过滤,ACCEPT:接受 -->
<onMatch>ACCEPT</onMatch>
<!-- 不符合要求的日志级别,过滤,DENY:拒绝 -->
<onMismatch>DENY</onMismatch>
</filter>

<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log.info_file}</FileNamePattern>
<!-- 每天一个日志文件,当天的日志文件超过10MB时,生成新的日志文件,当天的日志文件数量超过totalSizeCap/maxFileSize,日志文件就会被回滚覆盖。 -->
<maxFileSize>50MB</maxFileSize>
<!--日志文件保留天数-->
<maxHistory>30</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<!-- 将 immediateFlush 设置为 false 可以获得更高的日志吞吐量 -->
<ImmediateFlush>true</ImmediateFlush>
</appender>

<appender name="info_asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>256</queueSize>
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 提取调用者数据的代价是相当昂贵的 -->
<includeCallerData>false</includeCallerData>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="info_fileAppender"/>
</appender>
<!-- 异步info end -->

<!-- 异步error stat -->
<appender name="error_fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${log.pattern}</pattern>
</encoder>
<!-- 日志级别过滤器 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 日志级别过滤器 -->
<level>ERROR</level>
<!-- 符合要求的日志级别,过滤,ACCEPT:接受 -->
<onMatch>ACCEPT</onMatch>
<!-- 不符合要求的日志级别,过滤,DENY:拒绝 -->
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log.error_file}</FileNamePattern>
<!-- 每天一个日志文件,当天的日志文件超过10MB时,生成新的日志文件,当天的日志文件数量超过totalSizeCap/maxFileSize,日志文件就会被回滚覆盖。 -->
<maxFileSize>50MB</maxFileSize>
<!--日志文件保留天数-->
<maxHistory>30</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<!-- 将 immediateFlush 设置为 false 可以获得更高的日志吞吐量 -->
<ImmediateFlush>true</ImmediateFlush>
</appender>

<appender name="error_asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>256</queueSize>
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 提取调用者数据的代价是相当昂贵的 -->
<includeCallerData>false</includeCallerData>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="error_fileAppender"/>
</appender>
<!-- 异步error end -->

<!-- 异步debug stat -->
<appender name="debug_fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${log.pattern}</pattern>
</encoder>
<!-- 日志级别过滤器 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 日志级别过滤器 -->
<level>DEBUG</level>
<!-- 符合要求的日志级别,过滤,ACCEPT:接受 -->
<onMatch>ACCEPT</onMatch>
<!-- 不符合要求的日志级别,过滤,DENY:拒绝 -->
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${log.debug_file}</FileNamePattern>
<!-- 每天一个日志文件,当天的日志文件超过10MB时,生成新的日志文件,当天的日志文件数量超过totalSizeCap/maxFileSize,日志文件就会被回滚覆盖。 -->
<maxFileSize>50MB</maxFileSize>
<!--日志文件保留天数-->
<maxHistory>30</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<!-- 将 immediateFlush 设置为 false 可以获得更高的日志吞吐量 -->
<ImmediateFlush>true</ImmediateFlush>
</appender>

<appender name="debug_asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>256</queueSize>
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 提取调用者数据的代价是相当昂贵的 -->
<includeCallerData>false</includeCallerData>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="debug_fileAppender"/>
</appender>
<!-- 异步error end -->

<!-- 日志输出级别 -->
<root level="INFO">

<appender-ref ref="console"/>

<!-- <appender-ref ref="info_asyncFileAppender"/>
<appender-ref ref="error_asyncFileAppender"/>
<appender-ref ref="debug_asyncFileAppender"/> -->

</root>
</configuration>

 

版权声明:root 发表于 2023-02-06 9:17:12。
转载请注明:logback配置 | 书源

暂无评论

暂无评论...