java日志笔记

发布于:2024-12-06 ⋅ 阅读:(113) ⋅ 点赞:(0)

日志

日志就是Logging,它的目的是为了取代System.out.println()

好处:

  1. 可以设置输出样式,避免自己每次都写"ERROR: " + var

  2. 可以设置输出级别,禁止某些级别输出。例如,只输出错误日志;

  3. 可以被重定向到文件,这样可以在程序运行结束后查看日志;

  4. 可以按包名控制日志级别,只输出某些包打的日志;

JDK的Logging定义了7个日志级别,从严重到普通:

  • SEVERE

  • WARNING

  • INFO

  • CONFIG

  • FINE

  • FINER

  • FINEST

默认级别是INFO,因此,INFO级别以下的日志,不会被打印出来。使用日志级别的好处在于,调整级别,就可以屏蔽掉很多调试相关的日志输出。

小结

日志是为了替代System.out.println(),可以定义格式,重定向到文件等;

日志可以存档,便于追踪问题;

日志记录可以按级别分类,便于打开或关闭某些级别;

可以根据配置文件调整日志,无需修改代码;

Java标准库提供了java.util.logging来实现日志功能。

Commons Logging是一个第三方日志库,它是由Apache创建的日志模块。

Commons Logging可以挂接不同的日志系统,并通过配置文件指定挂接的日志系统。默认情况下,Commons Loggin自动搜索并使用Log4j(Log4j是另一个流行的日志系统),如果没有找到Log4j,再使用JDK Logging。

使用Commons Logging只需要和两个类打交道,并且只有两步:

第一步,通过LogFactory获取Log类的实例;

第二步,使用Log实例的方法打日志。

Commons Logging是一个第三方提供的库,所以,必须先把它下载下来。下载后,解压放置在代码文件的同等目录处。

注意编译的时候要指定classpath,不然编译器找不到我们引用的org.apache.commons.logging包。

Commons Logging定义了6个日志级别:

  • FATAL

  • ERROR

  • WARNING

  • INFO

  • DEBUG

  • TRACE

默认级别是INFO

小结

Commons Logging是使用最广泛的日志模块;

Commons Logging的API非常简单;

Commons Logging可以自动检测并使用其他日志模块。

Commons Logging,可以作为“日志接口”来使用。而真正的“日志实现”可以使用Log4j。

Log4j是一种非常流行的日志框架。通过配置文件来配置它

以XML配置为例,使用Log4j的时候,我们把一个log4j2.xml的文件放到classpath下就可以让Log4j读取配置文件并按照我们的配置来输出日志。

因为Log4j也是一个第三方库,我们需要从这里下载Log4j,解压后,把以下3个jar包放到classpath中:

  • log4j-api-2.x.jar

  • log4j-core-2.x.jar

  • log4j-jcl-2.x.jar

因为Commons Logging会自动发现并使用Log4j,所以,把上一节下载的commons-logging-1.2.jar也放到classpath中。

小结

通过Commons Logging实现日志,不需要修改代码即可使用Log4j;

使用Log4j只需要把log4j2.xml和相关jar放入classpath;

如果要更换Log4j,只需要移除log4j2.xml和相关jar;

只有扩展Log4j时,才需要引用Log4j的接口

SLF4J类似于Commons Logging,也是一个日志接口,而Logback类似于Log4j,是一个日志的实现。

如何使用SLF4J?它的接口实际上和Commons Logging几乎一模一样:

先分别下载SLF4JLogback,然后把以下jar包放到classpath下:

  • slf4j-api-1.7.x.jar

  • logback-classic-1.2.x.jar

  • logback-core-1.2.x.jar

然后使用SLF4J的LoggerLoggerFactory即可。

和Log4j类似,仍然需要一个Logback的配置文件,把logback.xml放到classpath下

小结

SLF4J和Logback可以取代Commons Logging和Log4j;

始终使用SLF4J的接口写入日志,使用Logback只需要配置,不需要修改代码。


网站公告

今日签到

点亮在社区的每一天
去签到