demo演示如何写一个无配置格式统一的日志

一、背景大量项目在使用logback记日志,有部分项目使用日志混乱,格式不统一,多数人搞不懂配置文件,导致配置错误,现在需要开发一套统一的、少配置的日志组件,方便使用。二、设计思路尽量采用0配置,无logback.xml日志格式统一,方便后续日志分析系统只有两个日志级别,一个是正常日志,一个是异常日志提供log4j、jcl、logback、commons-log等桥接方案及版本兼容方案...
摘要由CSDN通过智能技术生成

一、背景

大量项目在使用logback记日志,有部分项目使用日志混乱,格式不统一,多数人搞不懂配置文件,导致配置错误,现在需要开发一套统一的、少配置的日志组件,方便使用。

二、设计思路

尽量采用0配置,无logback.xml

日志格式统一,方便后续日志分析系统

只有两个日志级别,一个是正常日志,一个是异常日志

提供log4j、jcl、logback、commons-log等桥接方案及版本兼容方案

提子线程、json格式化输出、map格式化、数组格式化、请求响应参数(供耗时)等便捷日志输出方法

支持redis、db、http自动开关配置****

新增日志类型(logger)

api采用流式结构,类似StringBuffer

三、概要设计

1、零配置

调研代码

java
static LoggerContext lc;
    static {
        lc = (LoggerContext) LoggerFactory.getILoggerFactory();
        // 对应配置中的appender
        ConsoleAppender ca = new ConsoleAppender();
        ca.setContext(lc);
        ca.setName("console");
        // 格式
        PatternLayoutEncoder pl = new PatternLayoutEncoder();
        pl.setContext(lc);
        pl.setPattern("%d{MMddHHmmss.SSS} [%thread] %-5level %logger{36} - %msg%n");
        pl.start();
        ca.setEncoder(pl);
        ca.start();
        // 对应配置中的logger
        ch.qos.logback.classic.Logger rootLogger = lc.getLogger("com.test");
        rootLogger.addAppender(ca);}

上面代码等价于下面的xml


                    %d{MMddHHmmss.SSS} [%thread] %-5level %logger{36} - %msg%n

由此可以随意把配置文件中的内容以代码形式编写,理论已经可以实现0配置。

2、输出路径

约定固定将日志输出到,相对路径log/xxx.yyyy-MM-dd-HH.log,其中xxx为logger的name

3、日志格式


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值