告别System.out.println()

作为一名Java程序员,最熟悉的、使用的最多的调用恐怕莫过于


System.out.println("...")。当你没有调试工具而要跟踪一个变量的值的时候;当你需要显示捕获的Exception、Error的时候;当你想知道程序在运行的时候究竟发生了什么事的时候,通常的做法就是调用System.out.println()把它们在终端、控制台上打印出来。这种方式对于输出信息的分类、格式化及永久保存带来诸多不便。虽然我们可以把它写入一个文件然后进行分析,但是这需要额外的代码,其成本不可忽视!而由此给目标系统本身增加的复杂程度不可避免的使开发、调试陷入一个深深的泥潭。

注意:能不写的代码最好不要写!


JDK1.4的推出,使得这一切成为了历史。向System.out.println()告别吧,使用Java Logging API为自己的程序构建一个完整的日志记录系统!

一、第一个实例

先看一个简单的实例:

注意:编译、执行改程序需要JDK1.4及以上版本的支持,此实例使用JDK1.6

在适当时候获得一个Logger(日志记录器)类的实例logger,然后调用Logger类的log方法进行记录。

二、Logger

1、命名空间

在上边的实例中,我使用了一个匿名的(没有命名的)Logger对象。在Java Logging框架中,Logger是可以命名的。Logger的名字空间与Java类的名字空间的结构相同:使用"."间隔的字符串。Logger的名字空间体现了Logger的层次结构。例如:命名为"a.b"的Logger是命名为"a.b.c"的父级Logger记录器。Logger的命名可以是任意的字符串,一般情况下,使用包或类的名字为Logger进行命名。


Logger的名字空间由LogManager的实例进行创建、维护。

【在处理数据库的时候由DriverManager来管理数据库驱动】


匿名Logger不被存储在命名空间中。

2、日志级别

日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。

1、static Level DEBUG

      细粒度信息事件,对调试应用程序非常有帮助

2、static Level INFO

      粗粒度信息事件,突出强调程序的运行过程

3、static Level WARN

      会出现潜在错误的情形

4、static Level ERROR

      虽然发生错误事件,但仍然不影响系统的继续运行

5、static Level FATAL

      严重的错误事件将导致应用程序退出

另外,还有两个可用的特别的日志记录级别

1、static Level ALL

      最低等级,用于打开所有日志记录

2、static Level OFF

      最高等级,用于关闭所有日志记录


日志记录器(Logger)的行为是分等级的,分为DEBUG、INFO、WARN、ERROR、FATAL、ALL、OFF或者自己定义的级别。log4j建议只使用其中四个级别:DEBUG、INFO、WARN、ERROR。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值