简化SLF4J和通用日志工具的区别

这就是为什么现在每个人都用SLF4J的原因:)

下面是如何追踪和更新你的SLF4J日志:

  • 首先,查询slf4j绑定的类路径。
  • 然后,确保只有一个这样的绑定。
  • 最后,当你找到正在被使用的绑定:查阅它的配置特性。

另一方面-下面是如何追踪通用日志:

首先,你得找到日志绑定是如何实现。

检查commons-logging.properties 里的org.apache.commons.logging.log的属性是否设置,或通过应用里的Commons Logging API设置。

如果没有设置,检查路径下的log4j,如果有JDKLogger(IDK1.4+),或最后,如果简单logger已被使用(当没有其他可用logger时,common logging会使用默认logger)。

然后,查阅logging配置里的配置特性。

 

编译时绑定和运行时绑定

当我第一次阅读关于编译时绑定时,感觉很模糊:一个java库如何能用不同的依赖编译时绑定的框架来记录日志?答案是“编译时”绑定只适用于这样的情况-对SLF4J logger的实现时,SLF4J“被编译”。然而,你仍可以在运行时使用不同的绑定。

SLF4J不使用类加载器,而是,很简单:它加载org.slf4j.impl.StaticLoggerBinder。每一个SLF4J的实现(例如slf4j-log4j 绑定)提供一个有确切名称的类。所以这里没有疑惑,在运行时,相同的情况发生了:类被从类路径里直接取出,没有任何魔术运行。如果在类路劲下没有slf4j实现方法会怎么样? 怎样…然后会没有任何日志。

 

有时候魔术运行很好。其他时候,很烦人

唯一你可以决定的方法是:在这个情况后,如果你应用中可用的魔术运行是值得的。所以我任何common-logging是个很重要的尝试:它表明,依靠明确的绑定,可以用许多不同的方式实现,在java社区不能很好地工作。

从复杂的commons-logging API吸取的经验,已经给SLF4J提供了更简单、更明确和同样动态的方法。

是什么使SLF4J这么好?老实说,可能是现代的java开发者在依赖管理上非常有效,因为他们通常 使用maven来管理依赖。

因此,SLF4J纯粹的JAR绑定策略超容易实现的(基于现代java依赖管理工具)。

大概10年前,在java依赖管理问题解决前,commons-logging是一个简单的,快速而粗糙,同事没有太多配置开销的方式,以确保您的应用程序可以记录动态。

转载自 并发编程网 - ifeve.com

时间: 2024-09-17 10:23:47

简化SLF4J和通用日志工具的区别的相关文章

10 款简化工作流程的运营工具

  520表白日:想要做个好运营,不会撩妹怎么行? 一年一度的520表白日来了,这一天不向男神/女神表白,恐怕又要苦逼单身一年了.没有一点特别的撩妹神技怎能顺利脱单? 俗话说,直男撩妹,姿势不对.不如趁早补课,比如,用运营产品的方式撩妹.运营产品和撩妹在思路上没啥区别:首先找到你心仪的妹子(目标用户),获取她的基本信息(用户画像),了解她的喜好和需求(客户痛点),时刻关注妹子周围的动向(市场研究),潜入她的圈子形成影响力(社群营销),获取有用的信息(数据分析),做到妹子还没开口,就已经了解妹子的

阿里云有什么监控CPU和内存的日志工具

监控CPU和内存的日志工具 Linux 工具: 下载地址:get_cpu_mem_info_sh.rar 使用方法: 下载该文件解压后,上传到 /tmp 目录中. 运行 cd 切换到/tmp目录. 执行: nohup bash get_cpu_mem_info.sh & 该工具会在 /tmp 目录下生成一个日志文件,记录实时监控系统的 CPU.内存的使用情况,等到系统异常时可以用于分析日志. Windows 工具: 下载地址:get_cpu_mem_info_bat.rar 使用方法: 下载该文

commons-logging和slf4j都是日志的接口

      过上面的图,可以简单的理清关系! commons-logging和slf4j都是日志的接口,供用户使用,而没有提供实现! log4j,logback等等才是日志的真正实现. 当我们调用接口时,接口的工厂会自动寻找恰当的实现,返回一个实现的实例给我服务.这些过程都是透明化的,用户不需要进行任何操作! 这里有个小故事,当年Apache说服log4j以及其他的日志来按照commons-logging的标准编写,但是由于commons-logging的类加载有点问题,实现起来也不友好,因此l

《libGDX移动游戏开发从入门到精通》一2.4 日志工具

2.4 日志工具 众所周知,日志在调试程序的时候起着非常重要的作用.这一节我们就来对比学习Android中的日志工具与libGDX中的日志工具. 2.4.1 Android中的日志等级及输出方法 在Android原生中,在程序中输出日志使用android.util.Log类.该类提供了若干静态方法. Log.v(String tag, String msg); Log.d(String tag, String msg); Log.i(String tag, String msg); Log.w(

六个简化容器部署的免费工具

本文讲的是六个简化容器部署的免费工具[编者的话]本文来自Aqua技术博客,主要介绍了6款工具,它们是CodeFresh.Captain.Dogestry.Rocker.Convoy和Peekr,分别从敏捷开发协作.持续交付.镜像存储.镜像构建.后端存储和镜像安全方面帮助我们更容易地部署容器. 寻求帮助总是没有错的,尤其是在做容器相关工作的时候.那些有助于进行测试.镜像构建.备份以及其他重要过程的第三方Docker工具在它们免费的时候显得更加宝贵了. 在四月份的时候,我强调了六个简化容器部署的工具

Android 日志工具(log)的使用方法

使用Android的日志工具Log 方法: Android中的日志工具类为Log,这个类提供了如下方法来供我们打印日志: 使用方法: Log.d("MainActivity","onCreate execute"); 第一个参数tag:一般传入当前类名就好,主要用于队打印信息进行过滤. 第二个参数:msg,具体想打印的内容. 如: public class MainActivity extends AppCompatActivity { protected void

SLF4J和Logback日志框架详解

SLF4J和Logback日志框架详解 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 本文讲述SLF4J和Logback日志框架.   SLF4J是一套简单的日志外观模式的Java API,帮助在项目部署时对接各种日志实现. LogBack在运行时使用JMX帮助修改日志配置,在生产状态下无需重启应用程序. SLF4J SLF4J是简单的日志外观模式框架,抽象了各种日志框架例如Logback.Log4j.Commons-logging和JDK自带的l

Web 服务器日志工具点评

查看记录文件是很乏味的.记录文件令人厌恶,包含了太多的信息,经常使人非常头疼.幸运的是,这些枯燥的工作有代劳者,利用一些日志分析工具,不仅可以利用日志信息进行调试而且可以提供更多的内容.利用它们可以制作出有意义的各种报告.有很多用来分析服务器日志的工具.本文将重点介绍这些工具的和它们的发展方向. 在评估这些软件包之前,先确定你希望用它们来分析的日志类型.虽然大多数日志分析软件不仅仅支持Web服务器日志,但是,本文仅讨论web服务器的日志记录.记录分析软件能够显示从连接到服务器的IP地址到以饼图表

Windows C++ 应用程序通用日志组件(组件及测试程序下载)

引言 众所周知,在调试.跟踪和执行应用程序的过程中,程序的日志能为这些工作提供大量有价值的运行信息.因此,程序的日志对应用程序的运行.维护至关重要. 在如何记录程序日志方面,通常有三种选择: 1.采用Log4CXX等公共开源日志组件:这类日志组件的特点是跨平台且功能比较强大,例如可以把日志发往另一台服务器或记录到数据库中等:另外,可配置性较高,可以通过配置文件或程序代码对日志进行很多个性化设置.但从另外一个角度看,由于这些优点往往也导致了在使用方面的缺点.首先,对于一般应用程序来说,它们并不需要