java开发日志规范(日志框架有哪些)

健康新闻 2023-05-01 18:58健康生活www.xingbingw.cn

  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开发日志规范(日志框架有哪些)相关信息请关注本文章,本文仅仅做为展示!

Copyright@2015-2025 www.xingbingw.cn 性病网版板所有