几句话的事儿,LogBack急速使用

1.说说logback

在java的世界里面好像从来只有log4j,因为它是在太有名气了。说实话,我也没觉得它那里不好,至少在我自己的项目里,它工作的好好的。但是主流有一种声音,在慢慢的放弃它,最始作俑者是log4j的作者,也是logback的作者,他自己说的,维护越来越困难,索性开个新的。于是就是logback了。那么,这样说来,世界级的大牛的认知层面跟我们肯定不在一个世界内,索性跟随吧。慢慢体会。

2.logback要引用的包

从网上找资料看到很多包,各种说法也不一样,但是从我自己实践的效果看,引用一下这个包就可以了。

    <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>

3.一个配置的事情

这样来说似乎太简单了,但是如果就是一般用用也确实如此,本来这就是一个配置的事情。似乎都不用解释什么了。
引入包以后,在resources目录中增加logback.xml,就这样就可以了。
你需要自己配置一点点内容。

  • 第4行,这里指定了一个正在运行中的日志文件的名称。这个需要你自己指定一下
  • 第15行,这里指定了一个以月份为目录,日期为文件名的日志归档规则。
<?xml version="1.0" encoding="UTF-8"?>
<configuration  scan="true" scanPeriod="60 seconds" debug="false">
    <contextName>logback</contextName>
    <property name="log.path" value="log/jwcwxds.log" />
    <!--输出到控制台-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd} %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <!--输出到文件-->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>log/%d%d{yyyyMM}/jwcwxds.log.%d{yyyy-MM-dd}</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd} %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="trace">
        <appender-ref ref="console" />
        <appender-ref ref="file" />
    </root>
    <!--</logger>-->
</configuration>

4.开始使用吧

在需要用到日志的类的属性中增加
protected Logger logger = LoggerFactory.getLogger(this.getClass());
在需要记录日志的位置使用
比如我要记录三个参数和报错信息
logger.error("XH={} XM={} CJ={} ERROR={}",XH,XM,CJ,e.getMessage());

5.效果

运行后在包同级也就是System.getProperty("user.dir")这个目录里面会产生一个log文件。里面记录着我们再stdout中显示一样的内容。

而且可以按月划分目录,按日归档日志。

posted on 2018-06-20 08:17  源姜  阅读(124)  评论(0编辑  收藏  举报

导航