您的位置:首页 > 编程语言 > Java开发

spring boot 日志配置 logback-spring.xml

2017-07-25 10:50 921 查看
最近在学习spring boot相关,所以必然要了解日志文件的配置。

Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。 Logback是要与SLF4J结合起来用两个组件的官方网站如下:

logback的官方网站: http://logback.qos.ch

SLF4J的官方网站:http://www.slf4j.org

本文章用到的组件如下:请自行到官方网站下载!

logback-access-1.0.0.jar

logback-classic-1.0.0.jar

logback-core-1.0.0.jar

slf4j-api-1.6.0.jar


maven配置:

<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.11</version>


不多说 直接上我的配置,这样的配置是在开发过程中用的。

我这里使用spring扩展profile支持,所以日志名称为logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 从高到地低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL -->
<!-- 日志输出规则  根据当前ROOT 级别,日志输出时,级别高于root默认的级别时  会输出 -->
<!-- 以下  每个配置的 filter 是过滤掉输出文件里面,会出现高级别文件,依然出现低级别的日志信息,通过filter 过滤只记录本级别的日志-->
<configuration>
<!-- 文件输出格式 -->
<property name="PATTERN"
value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n" />
<!-- 文件路径 -->
<!--<property name="FILE_PATH" value="D:/DevData/kmcmsLogs" /> -->

<!-- 开发环境 -->
<springProfile name="dev">
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${PATTERN}</pattern>
</encoder>
</appender>

<logger name="com.km.controller" level="debug" />

<root level="info">
<appender-ref ref="CONSOLE" />
</root>
</springProfile>

<!-- 测试环境 -->
<springProfile name="test">
<appender name="ROLLING"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路径 -->
<file>D:/DevData/kmAppletLogs/kmapplet.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>D:/DevData/kmAppletLogs/kmapplet_%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<!-- each file should be at most 100MB, keep 60 days worth of history,
but at most 20GB -->
<maxFileSize>1MB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>10MB</totalSizeCap>
</rollingPolicy>
<!-- <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>${PATTERN}</pattern>
</layout> -->
<encoder>
<pattern>${PATTERN}</pattern>
</encoder>
</appender>

<root level="DEBUG">
<appender-ref ref="ROLLING" />
</root>
</springProfile>

<!-- 生产环境 -->
<springProfile name="prod">
<appender name="ROLLING"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路径 -->
<file>/ftp/private/kmAppletLogs/kmapplet.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>/ftp/private/kmAppletLogs/kmapplet_%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<!-- each file should be at most 10MB, keep 30 days worth of history,
but at most 1GB -->
<!-- 每个日志文件最大10MB, 保留30天的日志文件, 但是最多总文件大小为 5GB -->
<maxFileSize>10MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
<!-- <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>${PATTERN}</pattern>
</layout> -->
<encoder>
<pattern>${PATTERN}</pattern>
</encoder>
</appender>

<!--这里控制日志输出级别 -->
<root level="DEBUG">
<appender-ref ref="ROLLING" />
</root>
</springProfile>

</configuration>


通过application.properties文件中 spring.profiles.active=test 来指定logback-spring.xml 中使用哪一段来记录日志 。

在需要记录日志的地方使用

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

private final Logger logger = (Logger) LoggerFactory.getLogger(this.getClass());

logger.info(“日志内容”);

这样就可以记录了,满足开发需要。

另在eclipse中可以在控制台打印彩色日志,如有需要可以自行百度搜索,个人感觉用处不大,这里不做说明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: