Atiitt 日志技术的重大问题解决法 目录 1.1. 只想看某些日志,使用tag过滤法 1 1.2. 能方便清晰的列出某一业务(如支付)的完整的处理流程 业务tag 1 1.3. - NDC(N

Atiitt 日志技术的重大问题解决法

 

 

目录

1.1. 只想看某些日志,使用tag过滤法 1

1.2. 能方便清晰的列出某一业务(如支付)的完整的处理流程 业务tag 1

1.3. - NDC(Nested Diagnostic Context)和MDC(Mapped Diagnostic Context)是log4j种非常有用的两个类,它们用于存储应用程序的上下文信息(context infomation) 1

1.4. ,记录参数)MDC  NDC和MDC 3    MDC(Mapped Diagnostic Context,映射调试上下文) 1

 

 

    1. 只想看某些日志,使用tag过滤法

使用不同的append太麻烦了。。使用tag法比较简单。

 

 

    1. 能方便清晰的列出某一业务(如支付)的完整的处理流程 业务tag

在现实的场景中经常有这样的需求,在纷繁的日志文件中,通过搜索某一个关键字(如订单号),能方便清晰的列出某一业务(如支付)的完整的处理流程。

一个笨办法是在每个日志中加上该关键字,如下所示:

logger.info("[{}] entering pay",orderId);logger.info("[{}] check whether order is repeated ",orderId);logger.info("[{}] save order to db",orderId);logger.error("[{}]", orderIde);

......

    1. NDC(Nested Diagnostic Context)和MDC(Mapped Diagnostic Context)是log4j种非常有用的两个类,它们用于存储应用程序的上下文信息(context infomation)
    2. ,记录参数)MDC  NDC和MDC 3    MDC(Mapped Diagnostic Context,映射调试上下文)

有没有更方便的方法满足这一业务要求呢? 而不用这么麻烦要在每个日志中都要显式加上tag,所幸log4j自身就提供了这么一个方便易用的工具类--NDC。

只要在入口方法中设置tag,离开方法前remove即可。见如下示例代码:

protected static final Logger logger = LoggerFactory

            .getLogger(NDCDemo.class);

    void test1(long orderId)//入口方法

        NDC.push("["+orderId+"]"); //进入方法设置tag

        logger.info("entering test1"); //正常记录日志 无需显式添加tag

        test2();

        test3();

        test6();

        NDC.remove(); //离开方法删除tag

    }

 

 

另外除了NDC外还有一个工具类--MDC–也适用于这一场景,使用方式和NDC差不多,仍沿用上述示例,仅需部分改动:

void test1(int orderId){

        MDC.put("orderId""["+orderId+"]"); // NDC.push --> MDC.put(key , value)

        logger.info("entering test1");

        test2();

        test3();

        test6();

        MDC.remove("orderId"); //NDC.remove --> MDC.remove(key)

    }

 

 

Atitit 日志技术  cdc 变更数据捕获(Change Data Capture

 

 

    1. atitit log art 日志之道 v2 sbb.docx

log日志技术知识点.docx   .log日志技术的最佳实践attilax总结

 

1. 日志的意义与作用 1

1.1. 日志系统是一种不可或缺的单元测试,跟踪调试工具 1

2. 俩种实现  [1]日志系统作为一种服务进程存在   [2]日志系统作为系统调用存在 2

3. 日志常见概念 2

3.1. 输出目的地Appender  :console,文件,数据库 。。。 2

3.2. 日志级别level:DEBUG,INFO,WARN,ERROR,FATAL; 3

3.3. Layout布局 3

3.4. 上下文(手动或者aop模式,记录参数)MDC  NDC和MDC 3

3.5. 二:日志聚合与分析(摘自:http: 4

4. 日志格式规范 4

4.1. 输出地点:日志,console,db 5

5. 动态切换日志 5

6. 大数据搜索与日志挖掘及可视化方案——ELK Stack:Elasticsearch、Logstash、Kibana (第2版) 5

6.1. Web用户查询日志挖掘与应用_百度百科.html 5

7. 参考资料 6

 

posted @ 2019-05-10 20:19  attilaxAti  阅读(35)  评论(0编辑  收藏  举报