java开发日志规范(日志框架有哪些)
java开发日志规范(日志框架有哪些),新营销网红网本栏目通过数据整理汇集了java开发日志规范(日志框架有哪些)相关信息,下面一起看看。
功能介绍上一篇文章介绍了为什么、何时以及如何打印日志。本文介绍了项目开发中常见的日志组件和关系。
先看一张图。
接口所有的日志实现都被适配在一起,用统一的接口调用。
实现目前主流的日志实现。
原木立面SLF4J
SLF4J(Simple Logging Facade for Java)并不是一个特定的日志解决方案,而是通过Facade模式提供一些Java日志API,只服务于各种日志系统。从官方来说,SLF4J是日志系统的一个简单的门面,它允许最终用户在部署他们的应用程序时使用他们想要的日志系统。
例子
导入org . slf4j . logger;
导入org . SLF 4j . logger factory;
公共类日志测试{
私有静态日志记录器=Log factory . get Log(this . getclass());
}
Slf4j静态绑定原理SLF4J会在编译时绑定org . slf4j . impl . staticloggerbinder;该类实现对特定日志方案的绑定访问。任何基于slf4j的实现都必须有这些类中的一个。例如org . slf4j . slf4j-log4j 12-1 . 5 . 6:提供了log4j的自适应实现。注意如果任意两个实现slf4j的包出现,可能会有问题(mvn dependency:tree故障排除)。
普通日志记录
Common-logging是apache提供的一个通用日志接口。用户可以自由选择第三方日志组件作为具体实现,比如log4j或者jdk自己的日志。common-logging会在程序运行时通过动态搜索机制自动找出真正使用的日志库。
通用日志动态查找原理日志是一个接口声明。LogFactory内部会加载具体的日志系统,获取实现日志接口的实现类。在LogFactory中加载日志系统的过程如下
,查找org . Apache.commons . logging . log factory属性配置。利用JDK1.3提供的服务发现机制,将扫描classpah下的meta-INF/services/org . Apache.commons . logging . log factory文件。如果找到,里面的配置将被加载和使用。从类路径中查找commons-logging.properties,并根据里面的配置加载它。使用默认配置如果能找到Log4j,默认实现;如果没有,则由JDK14Logger实现;如果没有,就用commons-logging提供的SimpleLog来实现。从上面的加载过程来看,只要引入log4j,在类路径中配置log4j.xml,commons-logging就会让log4j正常工作,代码不需要依赖任何log4j代码。
slf4j与普通测井的比较
Common-logging通过动态搜索机制,自动找出程序运行时真正使用的日志库。因为它使用ClassLoader来查找和加载底层日志库,所以像OSGI这样的框架无法正常工作,因为OSGI的不同插件使用自己的ClassLoader。OSGI的这种机制确保了插件之间的相互独立性,它使得Apache Common-Logging无法工作。
Slf4j在编译时静态绑定到真实的日志库,可以在OSGI中重用。,SLF4J支持参数化日志字符串,避免了以前为了减少字符串拼接的性能损失而必须编写的if(logger.isDebugEnable())。现在可以直接写logger.debug("当前用户是 {} ",用户)。组装消息被延迟,直到它可以确定是否显示消息,获取参数的成本是不可避免的。
通用日志实现Log4j
2个配置文件,3个主要组件,7个日志级别
Log4j是Apache的开源项目。通过使用Log4j,可以控制日志信息传输的目的地为控制台、文件、数据库等。还可以控制每个日志的输出格式;通过定义每个日志信息的级别,我们可以更详细地控制日志生成过程。
Log4j有七个不同的日志级别,按降序排列TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF。如果将其配置为关闭级别,则意味着日志已关闭。
Log4j支持两种格式的配置文件属性和xml。它包含三个主要组件记录器、附加器和布局。
Log4j2
Log4j2和Log4j是同一个作者,只不过log4j2是一个重新设计的日志组件,摒弃了之前log4j的缺点,借鉴了logback的优秀设计,重新推出了一个新的组件。
1.插件结构Log4j 2支持插件结构。我们能
以根据自己的需要自行扩展Log4j 2. 我们可以实现自己的appender、logger、filter。 2. 配置文件优化 在配置文件中可以引用属性,还可以直接替代或传递到组件。而且支持json格式的配置文件。不像其他的日志框架,它在重新配置的时候不会丢失之前的日志文件。3. Java 5的并发性 Log4j 2利用Java 5中的并发特性支持,尽可能地执行最低层次的加锁。解决了在log4j 1.x中存留的死锁的问题。 4. 异步logger Log4j 2是基于LMAX Disruptor库的。在多线程的场景下,和已有的日志框架相比,异步的logger拥有10倍左右的效率提升。
LogBack
Logback是由log4j创始人设计的又一个开源日记组件。logback当前分成三个模块logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。logback-classic完整实现SLF4J API使你可以很方便地更换成其它日记系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日记的功能。
Log4j 与 LogBack 比较
LogBack作为一个通用可靠、快速灵活的日志框架,将作为Log4j的替代和SLF4J组成新的日志系统的完整实现。LOGBack声称具有极佳的性能,“ 某些关键操作,比如判定是否记录一条日志语句的操作,其性能得到了显著的提高。这个操作在LogBack中需要3纳秒,而在Log4J中则需要30纳秒。 LogBack创建记录器(logger)的速度也更快13微秒,而在Log4J中需要23微秒。更重要的是,它获取已存在的记录器只需94纳秒,而 Log4J需要2234纳秒,时间减少到了1/23。跟JUL相比的性能提高也是显著的”。
备注常见组合slf4j+logbackslf4j+log4j2 相关文章
粤语歌曲网(经典粤语歌曲汇总)
北京奥特莱斯(来北京必逛的12个商场)
豪杰超级解霸(还记得豪杰超级解霸吗?)
龚自珍的资料(清代诗人龚自珍一生功绩简介)
象牙塔是什么意思(“象牙塔”里怎么了?)
水色风信子(水培风信子容易养)
婧字怎么读
虞姬是哪里人(古代著名美人虞姬到底是哪里人?)
公办三本院校(我们还有哪些“三本”?)
电子酒柜(酒柜最全选购指南)
德州景点(德州市景区景点62个)
玉兰油官方网(OLAY发布高端臻粹系列)
更多java开发日志规范(日志框架有哪些)相关信息请关注本文章,本文仅仅做为展示!