Java日志小结

在本学期做软件构造的实验过程中,我深入学习了Java的日志功能,在这篇文章中对其进行简单的总结。

在编程过程中,我们常常需要观察程序的运行过程或者记录程序的运行信息,可能我们最熟悉的是使用System.out.println语句将信息打印到控制台上。这个方法很常用但缺点也很明显:这些语句需要频繁地进行插入和删除操作。比如发现程序有问题了,插入一些System.out.println语句进行观察;解决了这个问题以后将将相应语句删除;发现了新的运行问题又需要再插入其它的System.out.println语句...

针对这些问题,Java实现了日志功能的API,可以让我们对所需要的信息灵活地进行记录。这里介绍日志的简单使用,日志的过滤和日志的格式化。

1. 日志的简单使用

首先我们需要产生一个日志记录器,记录器的名字最好与主程序包一致。可以调用这条语句:Logger logger = Logger.getLogger("com.mycompany.myprog")。

Java的日志API定义了日志记录的7个级别,它们分别是:SEVERE,WARNING,INFO,CONFIG,FINE,FINER,FINEST。在默认情况下只会记录较高的3个级别的日志,当然也可以自己设置。比如logger.setLevel(Level.FINE),这样FINE以及更高级别的日志都会被记录。

Java日志记录的基本方法为logger.warning(message)或者logger.log(Level.FINE, message),两种方法都很常用。

2. 日志的过滤

在前面“日志的简单使用”中已经提到,Java日志记录器有7个级别,在默认情况下过滤器会根据日志记录的级别进行过滤。

另外,我们也可以自定义过滤器。自定义过滤器需要实现Fileter接口并定义自己的isLoggable方法,isLoggable方法的原型为boolean isLoggable(LogRecord record)。在这个方法中,我们可以自由地决定哪些信息应该被记录在日志中。

最后,将我们自定义的日志过滤器安装到日志记录器中,只需要调用setFilter即可。注意,同一时刻只能有一个过滤器。

3. 日志的格式化

日志记录多为文本和XML格式,可以通过ConsoleHandler类和FileHandler类生成。

我们也可以自己定义日志的格式。自己定义日志的格式需要继承Formatter类并实现自己的format方法,format方法的原型为String format(LogRecord record)。在这个方法中可以根据自己的需要对日志进行格式化记录。

最后,调用setFormatter方法将自定义的格式化器安装到处理器中。

通过前面的总结可以看出,在Java编程过程中使用日志有很多的好处。比如我们可以很方便地取消某个级别的日志或者取消全部日志记录,对日志记录进行过滤,对日志进行格式化等等。总之,掌握并用好Java提供的日志API可以极大地方便我们的编程。

猜你喜欢

转载自blog.csdn.net/qq512028505/article/details/80718699
今日推荐