探索Java的日志世界

探索Java的日志世界本文的思维导图一、主题打开日志的大门,探索的Java日志世界二、目标了解常用的日志框架掌握日志框架的选择和使用以及开发规范了解日志框架中的一些设计思想三、内容1、日志及日志框架简介1.1 、日志简介1.1.1 、 什么是日志?1)基本字义是指工作日志 ,详细介绍一个过程和经历的记录。 日志(汉语词汇)…

大家好,又见面了,我是全栈君。

探索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) );
日志实现:Logback;log4j

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121067.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sql优化的几种方式

    sql优化的几种方式一、为什么要对SQL进行优化我们开发项目上线初期,由于业务数据量相对较少,一些SQL的执行效率对程序运行效率的影响不太明显,而开发和运维人员也无法判断SQL对程序的运行效率有多大,故很少针对SQL进行专门的优化,而随着时间的积累,业务数据量的增多,SQL的执行效率对程序的运行效率的影响逐渐增大,此时对SQL的优化就很有必要。二、SQL优化的一些方法1.对查询进行优化,应尽量避免全表扫描…

    2022年6月22日
  • LiveWriter高亮显示方法专题「建议收藏」

    LiveWriter高亮显示方法专题「建议收藏」2013年9月26日花了一上午的时间,熟悉了LiveWriter的用法,学会了怎么配置语法高亮,总结下来。方法1.用博客园推荐的方法没有成功。pass方法2方法来自一个人的旅行.试过OK博客

    2022年7月2日
  • N-Queens And N-Queens II [LeetCode] + Generate Parentheses[LeetCode] + 回溯法

    N-Queens And N-Queens II [LeetCode] + Generate Parentheses[LeetCode] + 回溯法

    2021年12月8日
  • linux下安装php+apache+mysql集成环境

    linux下安装php+apache+mysql集成环境不多说,直接走起,实践才是道理,就算出错再说sudoapt-getinstallapache2php5-mysqllibapache2-mod-php5mysql-server意思差不多是:最小化安装amp也就是apache,php5和mysql在加上一个phpmysql扩展后面回出现差不多是这样的文字吧:解压后消耗掉xxMB的额外空间。您希望继续执行吗?[y/

    2022年6月28日
  • Idea主题风格插件Material Theme

    Idea主题风格插件Material Theme目录1idea插件material-theme设置2下载主题风格jar直接使用设置1idea插件material-theme偶然发现一款“暗黑系列”idea主题插件,感觉非常不错,分享一下~github:https://github.com/equinusocio/material-themeplugins安装完重启idea设置切换主题Edi…

    2022年6月27日
  • Canny算法解析,opencv源码实现及实例[通俗易懂]

    Canny算法解析,opencv源码实现及实例[通俗易懂]参考:http://baike.baidu.com/link?url=tkyXCTmiihKboar3IQ7yo-ECZK95tq2Bn02H1aKwGdt00xrbfD6Lezzjk5ArZF0lCnx8rOQiq4d7o24bUDN75_1392ZOUPYgdt3PZsmLrFShttp://blog.csdn.net/xiaowei_cqu/article/details/783

    2022年5月30日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号