java程序系统错误处理方法之 日志

来源:互联网 发布:淘宝开店拍身份证技巧 编辑:程序博客网 时间:2024/04/30 03:42

   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

0 0
原创粉丝点击