• 探索Java的日志世界


    探索Java的日志世界

    本文的思维导图

    一、主题

    打开日志的大门,探索的Java日志世界

    二、目标

    1. 了解常用的日志框架
    2. 掌握日志框架的选择和使用以及开发规范
    3. 了解日志框架中的一些设计思想

    三、内容

    1、日志及日志框架简介

    1.1 、日志简介

    1.1.1 、 什么是日志?

    1)基本字义是指工作日志 ,详细介绍一个过程和经历的记录。 日志(汉语词汇)

    2)网络设备、系统及服务程序等,在运作时都会产生一个叫log的事件记录;每一行日志都记载着日期、时间、使用者及动作等相关操作的描述。 日志(计算机术语)

    日志可以是有价值的信息宝库,也可以是毫无价值的数据泥潭

    1.1.2. 、什么是Java日志?

    Java日志:Java应用程序在运行过程中记录的一些数据信息

    如访问的程序中某个接口的时间,请求参数、响应参数等等。

    1.2、从System.out.println() 打开Java日志的大门

    public static void main(String[] args) {
    		System.out.println("hello sitech");
    }
    

    优点

    使用方便和简单!

    缺点

    1. 只能输出到控制台,不能输出到文件!
    2. 不能自定义全局的输出格式!(日志级别、日志切割/自动归档、异步打印日志等)
    3. 性能较低,如 println了 synchronized!

    1.3、日志框架的简介

    Java常用的日志框架对比和深入分析

    日志家族的成员

    commons-logging和slf4j都只是一个日志标准,并不是日志系统的具体实现

    log4j,logback等等才是日志的真正实现。

    2、如何选择及使用日志框架

    2.1、如何选择?

    接口选一个 、实现选一个实现,组合!
    日志门面/接口: SLF4J(即简单日志门面(Simple Logging Facade for Java) );
    日志实现:Logbacklog4j

    2.2、 如何使用?

    2.2.1 、单一日志框架通过slf4J使用 SLF4J user manual(用户使用手册)

    注: 每个日志框架的实现都有自己的配置文件。使用slf4j以后,配置文件还是框架自己本身的配置文件;

    1. 导入对应的jar

    2. 编写相应实现的配置文件

    3. 使用slf4j编写日志代码

    2.2.2、 在复杂系统如何统一所有的日志都统一到slf4J;legacy APIs
    1. 将系统中其他日志框架先排除出去;
    2. 用中间包来替换原有的日志框架;
    3. 我们导入slf4j其他的实现

    2.3、例子

    1. 简单实现slf4j + log4J
    2. 简单实现slf4j + logback
    3. log4j-over-slf4j与slf4j-log4j12共存stack overflow异常分析
    4. 解决办法

    log4j-over-slf4j与slf4j-log4j12共存stack overflow异常分析

    log4jDelegationLoop

    3、 日志开发规范

    参考 阿里巴巴Java开发手册(终极版).pdf - 日志规范

    4、Slf4j使用到的设计模式

    4.1 、设计模式

    1. 工厂模式
    2. 外观模式门面模式
    3. 桥接模式
    4. .....

    4.2 、 源码解析

    四、 总结和讨论

    1、总结

    本次分享是Java日志的整体的介绍,其实日志开发中还有很多的细节需要关注!

    比如日志的详细使用:日志配置文件编写,日志输出的格式语法,日志输出的级别,日志滚动策略等等
    
    比如日志的设计思想:设计模式、加载原理等等
    

    本此分享只是一个抛砖引玉的过程,日志的相关知识还是特别的多,希望后面大家可以分享出更精彩更深入的日志知识和使用技巧。

    2、讨论

    1、什么情况下,哪些数据信息需要记录日志?

    • 请求参数
    • 返回参数
    • 时间
    • 服务器IP(分布式)

    2、大家谈一下实际日志开发中一些经验技巧?

    • 分布日志排查不方便 --统一日志平台(集中日志收集)ELK
    • 统一日志平台:对日志格式有一定要求
    • 日志文件数据(服务调用日志)

    附录

    Asynchronous Loggers for Low-Latency Logging:性能对比

    log4j2使用介绍

    关于日志记录的一些感想

    Java日志框架:slf4j作用及其实现原理


    如果您觉得这篇博文对你有帮助,请点赞或者喜欢,让更多的人看到,谢谢!

    如果帅气(美丽)、睿智(聪颖),和我一样简单善良的你看到本篇博文中存在问题,请指出,我虚心接受你让我成长的批评,谢谢阅读!
    祝你今天开心愉快!


    欢迎访问我的csdn博客,我们一同成长!

    不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!

    博客首页 : http://blog.csdn.net/u010648555

    © 每天都在变得更好的阿飞

  • 相关阅读:
    Linux定时任务
    linux文件权限
    grep awk sed 三剑客
    用户管理
    find查找inode号删除文件
    find 查找文件或目录 及du命令
    11、注册新用户
    10、密码扩展,使用Flask-Login认证用户
    9、大型程序的结构
    8、目前flask程序结构
  • 原文地址:https://www.cnblogs.com/aflyun/p/9519675.html
Copyright © 2020-2023  润新知