软件开发常用的几种日志系统都有哪些类型
日志系统是程序员在维护软件的时候都需要查看的一个功能,而今天我们就通过案例分析来了解一下,软件开发常用的几种日志系统都有哪些类型。
1、JUL
JUL全称java.util.logging.Logger,JDK自带的日志系统,从JDK1.4就有了。因为log4j的存在,这个logger一直沉默着,其实在一些测试性的代码中,jdk自带的logger比log4j更方便。JUL是自带具体实现的,与log4j、logback等类似,而不是像JCL、slf4j那样的日志接口封装。
2、ApacheCommonsLogging
之前叫JakartaCommonsLogging,简称JCL,是Apache提供的一个通用日志API,可以让应用程序不再依赖于具体的日志实现工具。
commons-logging包中对其它一些日志工具,包括Log4J、AvalonLogKit、JUL等,进行了简单的包装,可以让应用程序在运行时,直接将JCLAPI打点的日志适配到对应的日志实现工具中。
common-logging通过动态查找的机制,在程序运行时自动找出真正使用的日志库。这一点与slf4j不同,slf4j是在编译时静态绑定真正的Log实现库。
3、AvalonLogKit
AvalonLogKit是一个高速日志记录工具集,Avalon里的各个组件Framework、Excalibur、Cornerstone和Phoenix都用到它。它的模型与JDK1.4Loggingpackage采用相同的原理,但与JDK1.2+兼容。使用LogKit的原因是:Context和LogTargets。
使用Log4j的时候,日志的内容只能是一句话,而使用LogKit,你可以记录很多项内容,甚至可以各项内容记录到对应的数据库字段中。如果使用Log4j存储日志到不同的存储介质,如数据库,需要使用Appender,而LogKit已经可以支持多种存储目标。
4、log4j
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、数据库等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
Log4j有7种不同的log级别,按照等级从低到高依次为:TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF。如果配置为OFF级别,表示关闭log。Log4j支持两种格式的配置文件:properties和xml。包含三个主要的组件:Logger、appender、Layout。