Java中的日志
Java程序有三种处理系统错误的方法:
(1)抛出异常
(2)断言
(3)日志
在应用程序中输出日志有三个目的:
(1)监视代码中变量的变化情况,把数据周期性地记录到文件中供其他应用进行统计分析工作。
(2)跟踪代码运行轨迹,作为日后审计的依据。
(3)担当集成开发环境中的调试器,向文件或控制台打印代码的调试信息。
Apache通用日志包(Commons Logging Package)是Apache的一个开放源代码项目,它提供了一组通用的日志接口,用户可以自由地选择实现日志接口的第三方软件。通用日志包目前支持以下日志实现:
- Log4J日志器(http://jakarta.apache.org/log4j)
- JDK1.4 Logging日志器(JDK1.4自带)
- SimpleLog日志器(把日志消息输出到标准系统错误流System.err)
- NoOpLog(不输出任何日志信息)
Log4j,先试用一下!!!!!!!!!
需求:将程序运行时产生的异常信息输出到文件中保存起来。
步骤:
(一)在工程中加入log4j所使用的jar文件
a. 将log4j-1.2.15.jar文件拷贝到程序中
b. 将上面的jar文件加入到系统的构建路径
项目名上右键单击-> 选择properties->java build path-> libraries->add jars, 如下图所示
c. 选择当前项目中的jar文件,点OK.如下图
(二)在classPath路径下创建log4j.properties文件, 用于配置日志功能
这个文件是log4j的配置文件。功能后面分析.
(三)编写log4j.properties文件,配置日志信息
(四)编写java程序,使用log4j记录日志信息
学习注意点:
1. Logger的级别:
Loggers组件被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG < INFO <WARN < ERROR < FATAL,分别用来指定这条日志信息的重要程度,明白这一点很重要,这里Log4j有一个规则:假设你定义的级别是info,那么error和warn的日志可以显示而比他低的debug信息就不显示了。
测试一下!!!!!!!!!!!!!!!
2. Appenders Log4j日志系统允许把日志输出到不同的地方,如控制台(Console)、文件(Files)、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等等。
其语法表示为:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
配置时使用语法为:
log4j.appender.appenderName =fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.option = valueN
这样就为日志的输出提供了相当大的便利。
3. Layouts
有时用户希望根据自己的喜好格式化自己的日志输出。Log4j可以在Appenders的后面附加Layouts来完成这个功能。Layouts提供了 四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式等等。
其语法表示为:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
配置时使用方式为:
log4j.appender.appenderName.layout=fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.option = valueN