当前位置: 首页 > 编程笔记 >

Java日志组件间关系详解

谢弘阔
2023-03-14
本文向大家介绍Java日志组件间关系详解,包括了Java日志组件间关系详解的使用技巧和注意事项,需要的朋友参考一下

一、 总览

本文章不对日志组件进行优劣评价,只是对关系进行对比。在日志中组件中存在这样的几种关系, 这几种关系理解清楚, 有助于我们对日志的引入和使用。

二、 日志门面

日志门面就是指直接引入我们程序中进行记录日志的日志组件,作为日志门面的这些组件会在程序中直接依赖, 上图中就列举的几种常见的日志门面的组件。像一些软件直接回默认使用一些组件, 比如Spring使用的就是commons-logging, activiti使用的日志门面就是slf4j, 其他的软件也都会选用自己认为好用的日志门面。

三、 日志实现

除了log4j既是门面又是实现之外, commons-logging和slf4j 都是能直接打印日志的, 都需要依赖一个日志实现来打印日志,上图中也举了几个日志实现。

四、桥接方式

slf4j默认和logback做了一些桥接的处理,那么桥接的作用是什么呢, 假如我想使用slf4j做为实现的门面,然而同时我想使用log4j作为真正的日志实现,这个时候就需要slf4j-logrj12 jar包, 现在应该可以理解桥接方式了。

五、 改变依赖

这里的作用是为了避免一些冲突, 例如在这样的场景下,我们使用spring做为开发,而我们开发的软件要使用的是slf4j作为日志门面,这个时候因为Spirng默认使用的是commons-logging作为日志门面,这个时候就会发生一些冲突, 所以我们可以引入jcl-over-slf4j, 通过这个组件把commons-logging覆盖掉, 为了把历史软件内部的依赖覆盖掉, 就可通过这个方式改变依赖。

 类似资料:
  • easySwoole提供了分类日志服务,以供记录运行信息方便调试。 $log = Logger::getInstance(); $log2 = Logger::getInstance('logcategory1'); log $log->log('message1'); $log2->log('message2'); console $log->console("message",false);

  • 日志组件接口 宏定义 #define  LOG_E(...)   ulog_e(LOG_TAG, __VA_ARGS__)   错误级别日志   #define  LOG_W(...)   ulog_w(LOG_TAG, __VA_ARGS__)   警告级别日志   #define  LOG_I(...)   ulog_i(LOG_TAG, __VA_ARGS__)   提示级别日志   #de

  • 我正在开发一个应用程序,使用我的另一个项目作为maven依赖项。 期望 我希望我的依赖项使用自己的回退.xml登录自己的文件。我希望应用程序使用自己的 logback.xml文件登录到控制台和一个与依赖项不同的文件。我希望这两个文件都位于应用程序jar附近的日志文件夹中。 它现在做什么 但是目前,应用程序和依赖项都使用应用程序的logback.xml,所有内容都记录在控制台和同一个文件中。 我该如

  • 本文向大家介绍Koa日志中间件封装开发详解,包括了Koa日志中间件封装开发详解的使用技巧和注意事项,需要的朋友参考一下 对于一个服务器应用来说,日志的记录是必不可少的,我们需要使用其记录项目程序每天都做了什么,什么时候发生过错误,发生过什么错误等等,便于日后回顾、实时掌握服务器的运行状态,还原问题场景。 日志的作用 记录服务器程序运行状态; 帮助开发者快速捕获错误,定位以及决解故障。 日志中间件开

  • 作为最核心的模块之一, Nutz的日志信息已经相当完善,看懂Nutz的日志,也是了解Nutz工作方式的核心途径之一.

  • THE LOGGING SYSTEM 对于任何 Linux 用户,了解日志文件的使用是非常重要的。日志文件存储关于操作系统和应用程序运行时发生的事件的信息,包括任何错误和安全警报。您的系统将根据我将在本章中介绍的一系列规则自动记录信息。 作为黑客,日志文件可以跟踪目标的活动和身份。但是它也可以是你自己在别人系统上的活动的踪迹。因此,黑客需要知道他们可以收集什么信息,以及可以收集关于他们自己的行为和