Log4j日志工具实践

来源:互联网 发布:黑色沙漠男忍捏脸数据 编辑:程序博客网 时间:2024/04/30 01:44

Log4J是Apache的一个开放源代码的项目,是目前用的最多的日志控件。通过使用Log4J,程序员可以控制日志信息输送的目的地,包括控制台,文件,GUI组件和NT事件记录器,也可以控制每一条日志的输出格式,或通过定义每一条日志信息的级别,更加细致地控制日志的生成过程。

日志分为下面6个级别,越向下面等级越低:

FATAL      
ERROR    
 
 
WARN      
 
INFO      
    
 
DEBUG    
TRACE

日志的主要架构如下:

Appender 为日志输出目的地,Log4j提供常用的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(文件),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
Layout:日志输出格式,Log4j提供常用的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),org.apache.log4j.PatternLayout(可以灵活地指定布局模式),org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:
    %m   输出代码中指定的消息  %p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL   %r   输出自应用启动到输出该log信息耗费的毫秒数   %c   输出所属的类目,通常就是所在类的全名   %t   输出产生该日志事件的线程名   %n   输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”   %d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  22 : 10 : 28 , 921    %l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) 
下面开始敲程序实践:
第一步:加入下面的几个包

最下面一个是mysql数据库的连接jar,如果不用数据库,那么也没有必要加进来,commons-logging是Apache commons库类中的一员,提供一些通用的功能,如:commons-fileupload,commons-httpclient,commons-io,commons-codec等。
commons-logging 能够自动选择使用Log4j还是JDK自带的Logging,但是它不依赖这两者。
第二步:在src的根目录下面建一个文件log4j.properties。
log4j.rootLogger=DEBUG, A1    #grade of error,output to A1.#注意:Log4j的日志配置,如:输出到什么地方,输出级别,输出的时候附加什么信息,输出的格式,等等都配置在log4j.properties.#output to consolelog4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss,SSS} [%C]-[%p] %m%n
第三步:新建测试类进行测试:
package com.zjca.util;import org.apache.log4j.Logger;public class Log4jTest {public static Logger log=Logger.getLogger(Log4jTest.class);public static void main(String[] args) {// TODO Auto-generated method stublog.trace("hehe trace");log.debug("hehe debug");log.info("hehe info");log.warn("hehe warn");log.error("hehe error");log.fatal("hehe fatal");try{String s=null;s.length();}catch(Exception e){log.trace("trace exception..",e);log.debug("debug exception..",e);log.info("info exception..",e);log.warn("warn exception..",e);log.error("error exception..",e);log.fatal("fatal exception..",e);}}}
输出结果为:




 
hehe。。。。。

0 0
原创粉丝点击