为了账号安全,请及时绑定邮箱和手机立即绑定

logback实践笔记

标签:
Java

前言

每次看公司配置好的logback文件的时候,都不知道什么意思。导致有的时候,一些项目发到测试环境的时候,有的项目没有打印日志,自己都不知道哪里有问题。所以自己新建一个springboot项目,使用logback来打印日志的输出格式。

日志区分

slf4j可以认为是一系列的日志接口,而log4j,logback是具体实现了的日志框架,官方翻译过来是这样说的:

slf4j译为简单的日志门面,是日志框架的抽象。而log4j和logback是众多的日志框架中的几种。

我主要对logback进行了实战。

简介

Logback是作为log4j的后续版本,Logback的体系结构足够通用。为了在不同的情况下应用,目前有三大模块:logback-core,logback-classic,logback-access。

  • logback-core : 核心模块,为了其他两个模块奠定了基础。

  • logback-classic: 可以看作log4f的改进版本,此外,logback-classic本身实现了SLF4J API。

  • logback-access: 模块与Servlet容器(如Tomcat和Jetty)集成,以提供HTTP访问日志功能。

配置文件

在springboot项目中,会先查找是否有logback-test.xml文件,有就会加载。没有就查找logback.xml文件,里面有三个比较大的属性。分别是root,logger,appender。一些变量的配置属性property,contextName。

root

根目录属性,每个logback文件中,只有一个level属性,设置整个项目的日志输出水平。如果设置多个root的话,以最高的level为准

logback.xml代码:

<?xml version="1.0" encoding="utf-8" ?><!-- debug=是否打印logback内部日志 scan=是否重新加载  scanPeriod=多久扫描一次  --><configuration debug="true" scan="true" scanPeriod="30 seconds">
  <!-- 下次再详细介绍  -->
    <appender  name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d{YYYY年MM月dd日 HH:mm:ss} | %thread | %-5level %logger - %msg%n</Pattern>
        </encoder>
    </appender>
  
  <!-- 控制台只会输出error的日志 -->
    <root level="info">
        <appender-ref ref="stdout"/>
    </root>
   <root level="error">
        <appender-ref ref="stdout"/>
    </root></configuration>

测试代码:

package com.example.logback.Demo;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;/**
 * @ClassName LogbackTest
 * @Description TODO
 * @Author ouyangkang
 * @Date 2019-01-03 16:34
 **/@Componentpublic class LogbackTest {    private final Logger logger = LoggerFactory.getLogger("测试");    public void test() {
        logger.info("=========>info");
        logger.error("=========>error");
        logger.debug("=========>debug");
    }
}

测试类:

package com.example.logback;import com.example.logback.Demo.LogbackTest;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import javax.annotation.Resource;@RunWith(SpringRunner.class)@SpringBootTestpublic class LogbackApplicationTests {    @Resource
    private LogbackTest logbackTest;    @Test
    public void contextLoads() {
        logbackTest.test();
    }

}

结果如下:

https://img1.sycdn.imooc.com//5c34b05400017e6413270476.jpg

只输出error中的字段。

下一篇我将把logback.xml中的logger详细介绍一下,和我自己写logger属性Demo的坑。这个坑也让我比较深刻的认识了logback。其实上面代码是有点问题的,不知道你看的出来吗。一旦我是用logger来打印日志这个坑就出来了。

原文出处:https://www.cnblogs.com/Krloypower/p/10240763.html  

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消