在选择项目日志框架时,发现log4j的作者开发了新的日志框架,据说性能提高不少,那就选它了,不过,除了配置上有点不习惯外,最重要的一点 ,打印线程号这个功能依然没有(打印线程名这个东西是在是个鸡肋)。在log4j的时代,改写PatternLayout 就可以实现打印线程号,参考另外一篇文章日志配置log4j 打印线程号 。但是最新版的logback貌似不支持改写PatternLayout, 纠结,搁置一段时间后,是在受不了,继续研究,翻阅N篇文档,虽然没有找到具体方法,但是受到了一些启发,最终找到方法了,在此与大家分享。

  1. 在pom.xml中引入依赖(如果你的项目不是Maven的,祝福你)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.0.13</version>
    </dependency>
    <!-- 代码直接调用log4j会被桥接到slf4j -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
    </dependency>

  2. 新建Encoder类和Converter类

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class LogBackExEncoder extends PatternLayoutEncoder {
        static {
            PatternLayout.defaultConverterMap.put("T", ThreadNumConverter.class.getName());
            PatternLayout.defaultConverterMap.put("threadNum", ThreadNumConverter.class.getName());
        }
        @Override
        public void doEncode(ILoggingEvent event) throws IOException {
            super.doEncode(event);
        }
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class ThreadNumConverter extends ClassicConverter {
        /**
           * 当需要显示线程ID的时候,返回当前调用线程的ID
           */
        @Override
        public String convert(ILoggingEvent event) {
            return String.valueOf(Thread.currentThread().getId());
        }
    }

  3. 在配置文件中调用自己的Encoder

    1
    2
    3
    4
    5
    6
    <!-- 控制台输出 -->
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
      <encoder charset="UTF-8" class="ch.qos.logback.core.encoder.LogBackExEncoder">
        <pattern>[APP_LOG] %date [%T] %-5level (%logger{80}.%method:%line - %msg%n</pattern>
      </encoder>
    </appender>

    其中[%T] 就是用于打印线程号的

  4. 日志效果

    附上我的logback配置文件

附件列表

转载于:https://www.cnblogs.com/juforg/p/3488740.html

日志配置logback相关推荐

  1. SpringBoot (14)---日志配置(logback)

    SpringBoot 日志配置(logback) SpringBoot支持Java Util Logging,Log4J,Log4J2和Logback日志框架,默认采用logback日志.在实际Spr ...

  2. Spring Boot 日志配置 ——logback

    一.logback默认的日志配置 Spring Boot 默认使用的日志框架是logback,如果我们没有自定义配置的话,logback将会使用他为默认的日志配置文件: classpath:logba ...

  3. springboot2.0日志配置 logback的使用和logback.xml详解

    logback的使用和logback.xml详解写的非常详细. 只根据上面的我们会发现,日志要么输出到文件.要么输出到控制台不能有选择的输出满足我们的要求,这是需要看下面这个文章, 多个xml路径,有 ...

  4. SpringBoot ——Spring Boot日志配置

    Spring Boot 采用了 slf4j+logback 的组合形式,Spring Boot也提供对JUL.log4j2.Logback提供了默认配置 1.默认日志配置 修改日志默认级别 2.修改日 ...

  5. log4j 打印线程号配置_日志配置log4j 打印线程号

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 # Set root logger level to WARN and a ...

  6. qt能使用logback_Spring boot使用logback实现日志配置

    欢迎关注头条号:老顾聊技术 精品原创技术分享,知识的组装工 目录 前言 常用日志组件 什么是日志门面和日志实现 常见的日志框架 日志使用 @slf4j注解 日志的配置 logback-spring配置 ...

  7. 使用Spring配置LogBack日志记录

    LogBack是由Log4j的同一作者创建的用于记录日志的API(较新的实现,它类似于新版本),在本文中,我将展示如何在Spring项目中对其进行集成和使用. 在本教程中,我假设您正在使用一个简单的S ...

  8. spring boot使用logback实现多环境日志配置

    From: https://blog.csdn.net/vitech/article/details/53812137 软件生存周期中,涉及代码运行的环节有编码.测试和维护阶段,而一套成熟的代码,在此 ...

  9. springboot超级详细的日志配置(基于logback)

    前言   java web 下有好几种日志框架,比如:logback,log4j,log4j2(slj4f 并不是一种日志框架,它相当于定义了规范,实现了这个规范的日志框架就能够用 slj4f 调用) ...

最新文章

  1. linux中probe函数中传递的参数来源(上)
  2. Maven项目不能编译jsp解决方法:Unable to compile class for JSP
  3. OpenCV方向梯度直方图HOG的实例(附完整代码)
  4. 是时候理解下HTTPS及背后的加密原理了
  5. json类的解析,调试实例
  6. display和show的区别
  7. html中内联元素和块级元素的区别(整理版)
  8. Spring4.x(2)--SpringIOC的概念和作用
  9. 为什么说:“你不合适学Python?”醍醐灌顶!
  10. linux 深度 root,深度刷机让毫秒级一键ROOT成为现实
  11. oracle 判断最后一笔_美股道琼斯日线杀跌一笔结束,向上一笔的反弹顺理成章。又到金秋弯腰拾金时...
  12. 底层电子电路基础知识
  13. chrome 如何官网下载谷歌浏览器离线安装包
  14. ps海报合成教程_怎样合成创意环保海报图片的PS教程
  15. wow3.13大脚插件
  16. win10计算机入门使用教程,win10技巧大全_win10使用技巧方法教程 - 系统家园
  17. python 聚类 客户细分_Python中用K-均值聚类来探索顾客细分
  18. 总结:linux笔记-001
  19. Certificate、Provisioning Profile、App ID的介绍及其之间的关系
  20. 使用css3和tween.js二种方式实现照片翻转

热门文章

  1. 【Qt5.8】Qt5.8中QTableWidget 类介绍
  2. 【Linux系统编程】进程间通信--共享内存
  3. 【SSL协议】SSL协议详解
  4. 【Linux网络】Linux Socket编程 TCP协议
  5. xboxone硬盘坏的表现_【32期】硬盘损坏的根源居然是——它!
  6. 60条知乎神回复,大部分都比较有道理
  7. Android安卓获取网络状态
  8. 查看SecureCRT保存的密码
  9. U-Boot启动过程完全分析
  10. C++ primer 14章习题答案