logback 详解

先讲下通过lombok添加日志

springboot下添加包

        <dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>

idea 系统设置下在 Plugins下点 Browse Repositories..  再输入lombok添加并安装,好了重启idea就好

在类上添加注释 @Slf4j,  需要打印日志 只要写  log.info("");

下面是自己的logback配置  新建 logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--logback 配置
    debug当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
    scan当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
    scanPeriod 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。-->
<configuration debug="false" scan="true" scanPeriod="60 seconds">
    <property name="logHome" value="D:/logs"></property>
    <!--定义一个控制台输出配置-->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <!--定义输出格式-->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                <!--highlight会根据日志等级显示不同颜色, level前面的-5是缩位,方便后面对齐-->
                %d %highlight(%-5level) %yellow([%class.%method]) - %boldMagenta(%msg) %n
            </pattern>
        </layout>
    </appender>

    <!--定义文件输出log 滚动类型,需要每天一个生成一个日志文件  info级别-->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--添加过滤器,如果是error则拒绝,如果不是则通过  另外还有一个NEUTRAL值,如果这里没有命中,则找下面一个appender来匹配-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <encoder>
            <pattern>
                %d %-5level [%class.%method] - %msg%n
            </pattern>
            <charset>UTF-8</charset>
        </encoder>
        <!--滚动策略  根据时间滚动-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--%d 默认格式为 yyyy-MM-dd 这样日志以天为单位,则后面设置的maxHistory也以天为单位-->
            <fileNamePattern>${logHome}/sbtInfo.%d.log</fileNamePattern>
            <!--保存30天日志,每天检查日志,超过30天的会删除-->
            <maxHistory>30</maxHistory>
            <!--所有日志文件总大小为1G-->
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <!--单个日志文件的大小限制-->
            <maxFileSize>50MB</maxFileSize>
        </triggeringPolicy>
    </appender>

    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--添加过滤器,仅过滤error-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>
                %d [%class.%method] - %msg%n
            </pattern>
            <charset>UTF-8</charset>
        </encoder>
        <!--滚动策略  根据时间滚动-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--%d 默认格式为 yyyy-MM-dd 这样日志以天为单位,则后面设置的maxHistory也以天为单位-->
            <fileNamePattern>${logHome}/sbtInfo.%d.log</fileNamePattern>
            <!--保存30天日志,每天检查日志,超过30天的会删除-->
            <maxHistory>30</maxHistory>
            <!--所有日志文件总大小为1G-->
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <!--单个日志文件的大小限制-->
            <maxFileSize>50MB</maxFileSize>
        </triggeringPolicy>
    </appender>

    <!--root 为整个项目输出日志的配置 ,级别为info-->
    <root level="info">
        <!--日志输出采用之前定义的 规则-->
        <appender-ref ref="consoleLog"></appender-ref>
        <appender-ref ref="fileInfoLog"></appender-ref>
        <appender-ref ref="fileErrorLog"></appender-ref>
    </root>
</configuration>

猜你喜欢

转载自my.oschina.net/u/1411360/blog/1784943