Java日志框架用法及常见问题解决方案
日志定义:
在计算机领域,日志文件(logfile)是一个记录了发生在运行中的操作系统或其他软件中的事件的文件,或者记录了在网络聊天软件的用户之间发送的消息。
日志记录(Logging):是指保存日志的行为。最简单的做法是将日志写入单个存放日志的文件。
日志级别优先级:
ALL 日志框架的作用: ①:跟踪用户对系统访问,记录了系统行为的时间、地点、状态等相关信息,能够帮助我们了解并监控系统状态 ②:进行统计 ③:进行Debug,在系统产生问题时,能够帮助我们快速的定位、诊断并解决问题。 在发生错误或者接近某种危险状态时能够及时提醒我们处理 常用的日志框架类别简介: Spring框架内部使用的日志框架是JCL(JakartaCommonsLogging) Mybatis框架中使用的是Log4j Hibernate框架中使用的是jboss-logging Springboot底层使用的是SLF4j+Logback (Log4j,Logback,SLF4j都是同一个作者。) 问题引入: 市场上存在非常多的日志框架。每一种日志框架都有自己单独的API,要使用对应的框架就要使用其对应的API,这就大大的增加应用程序代码对于日志框架的耦合性。 解决思路: 为了解决上述问题,就在日志框架和应用程序之间架设一个沟通的桥梁,对于应用程序来说,无论底层的日志框架如何变,都不需要有任何感知。只要门面服务做的足够好,随意换另外一个日志框架,应用程序不需要修改任意一行代码,就可以直接上线。 在软件开发领域有这样一句话:计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。而门面模式就是对于这句话的典型实践。 Logback文档免费。Logback的所有文档是全面免费提供的,不象Log4J那样只提供部分免费文档而需要用户去购买付费文档。Logback拥有更好的性能。 因为springboot底层使用的是SLF4j+Logback,而且平时开发中使用频率最高的也是此组合,所以选择使用此组合进行日志框架的整合。 可能出现的问题: 如果我们直接暴力的排除其他日志框架,可能导致第三方库在调用日志接口时抛出ClassNotFound异常,这里就需要用到中间转换包。 中间转换包说白了就是一种偷天换日的解决方案。比如log4j-over-slf4j,即log4j->slf4j的转换包,这个库定义了与log4j一致的接口(包名、类名、方法签名均一致),但是接口的实现却是对slf4j日志接口的包装,即间接调用了slf4j日志接口,实现了对日志的转发。 解决方案: ①:先排除其他日志包 ②:在项目中引入slf4j的转换包 ③:在项目中引入slf4j+logback依赖+logback的配置文件 在项目中引入slf4j的转换包 在项目中引入slf4j+logback依赖 logback.xml配置文件 参考链接: slf4j官网 slf4j使用手册 logback官网 CommonsLogging官网 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。 声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。