您的位置:首页 > 其它

Logback日志配置

2017-04-25 08:12 218 查看
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%-5level] [%class:%line] - %m%n</pattern>
</encoder>
</appender>

<appender name="ERROR-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%class:%line] - %m%n</pattern>
</encoder>
<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">
<!-- rollover daily -->
<fileNamePattern>${user.home}/logs/carrier/carrier.error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- each file should be at most 300MB, keep 30 days worth of history, but at most 30GB -->
<maxFileSize>300MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>30GB</totalSizeCap>
</rollingPolicy>
</appender>

<appender name="INFO-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%class:%line] - %m%n</pattern>
</encoder>
<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">
<!-- rollover daily -->
<fileNamePattern>${user.home}/logs/carrier/carrier.info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- each file should be at most 300MB, keep 30 days worth of history, but at most 30GB -->
<maxFileSize>300MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>30GB</totalSizeCap>
</rollingPolicy>
</appender>

<springProfile name="dev">
<logger name="com.zto" level="DEBUG" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</springProfile>

<springProfile name="test">
<logger name="com.zto" level="DEBUG" additivity="false">
<appender-ref ref="ERROR-OUT" />
<appender-ref ref="INFO-OUT" />
</logger>
<root level="INFO">
<appender-ref ref="INFO-OUT" />
</root>
</springProfile>

<springProfile name="prod">
<logger name="com.zto" level="DEBUG" additivity="false">
<appender-ref ref="ERROR-OUT" />
<appender-ref ref="INFO-OUT" />
</logger>
<root level="INFO">
<appender-ref ref="INFO-OUT" />
</root>
</springPro
4000
file>

<logger name="org.springframework.web" level="INFO"/>
</configuration>


异步日志:

application.properties:

logging.file=${user.home}/logs/consumer.log
logback-spring.xml:

<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}" />
<include
resource="org/springframework/boot/logging/logback/console-appender.xml" />
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<file>${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>1</maxHistory>
</rollingPolicy>
</appender>
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<Pattern>${FILE_LOG_PATTERN}</Pattern>
</encoder>
<file>${user.home}/logs/consumer.error.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<!-- 按天来回滚,如果需要按小时来回滚,则设置为{yyyy-MM-dd_HH} -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${user.home}/logs/consumer.error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 如果按天来回滚,则最大保存时间为maxHistory天,maxHistory天之前的都将被清理掉 -->
<maxHistory>1</maxHistory>
</rollingPolicy>
</appender>
<appender name="ASYNC_ERROR_FILE" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>10000</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="ERROR_FILE" />
</appender>
<appender name="RollingFileASYNC" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>2048</queueSize>
<appender-ref ref="FILE" />
</appender>
<root level="INFO">
<appender-ref ref="RollingFileASYNC" />
<appender-ref ref="ASYNC_ERROR_FILE" />
<springProfile name="dev">
<appender-ref ref="CONSOLE" />
</springProfile>
</root>
<logger name="org.springframework.web" level="INFO" />
</configuration>
不同类输出不同日志:

private static final Logger log = LoggerFactory.getLogger("monitor");
<appender name="file-monitor" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<Pattern>${FILE_LOG_PATTERN}</Pattern>
</encoder>
<file>${user.home}/logs/service.log</file>
<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.TimeBasedRollingPolicy">
<fileNamePattern>${user.home}/logs/service.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>2</maxHistory>
</rollingPolicy>
</appender>
<appender name="RollingFileASYNC-MONITOR" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>2048</queueSize>
<appender-ref ref="file-monitor" />
</appender>
<logger name="monitor" additivity="false" level="INFO">
<appender-ref ref="RollingFileASYNC-MONITOR"/>
</logger>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: