Java的日志系统

   

   日志系统是软件项目中一个非常重要的模块,它可以记录软件运行过程中重要的信息,可以帮助我们追踪软件的运行状态。特别是在线上环境中,有助于我们快速定位BUG。在JAVA中记录日志的方法大概有两种,一种是使用JAVA自带的包java.util.logging,另外一个是开源的日志包log4j。下面着重介绍如何快速在项目中使用这个强大的功能,网上这方面的帖子多如牛毛,但是我没有找到一个特别傻瓜的,让我看过之后马上就能拿来用的,所以决定自己将log4j的使用过程重新理一遍。

1.    log4j的官方网站上http://logging.apache.org/log4j/1.2/download.html下载最新的包。

在本地解压后,将log4j-1.2.16.jar文件拷贝出来,放到你的工程目录下,我的做法是在src同级的目录下创建一个lib文件夹,将这个文件拷贝到这里。

2.    然后将这个library文件导入到项目中去。这个都会导入的吧,我用的是eclipse环境,在选中项

目上点击右键,选择“属性”, 选中“Java Building Path”,然后选中LibrariesàAdd Enternal JARS

将上面的JAR文件导入即可。

   然后就是在具体的代码中使用了,在使用之前,需要对log4j进行配置,当然如果你不想配置的话可以使用它的默认配置,只需在项目初始化的地方加入下面一句话就可以了:BasicConfigurator.configure();

默认功能太弱了,这当然不是我们所期望的。

   现在我们自己定义一个log4j的配置文件,这个是我刚使用的(log.properties文件):

log4j.rootLogger=INFO,A1,A2

log4j.appender.A1=org.apache.log4j.ConsoleAppender

log4j.appender.A1.layout=org.apache.log4j.PatternLayout

log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ss SSS} %c %m%n

 

log4j.appender.A2=org.apache.log4j.FileAppender

log4j.appender.A2.File=./log.txt

log4j.appender.A2.Threshold=INFO

log4j.appender.A2.Append=true

log4j.appender.A2.layout=org.apache.log4j.PatternLayout

log4j.appender.A2.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ss SSS} %c %m%n

    每一行的具体意思大家可以去网上查找资料了解一下,这里的日志同时支持控制台输出和文件输出。

你可以直接将这个拷贝到你的项目中去使用。在代码初始化的地方,加上如下语句:

PropertyConfigurator.configure(“log.properties”);注意了,我这里没有指定路径,是因为我直接将这个文件放到eclipse项目属性文件所在的同一个目录下面。然后在将这句代码import org.apache.log4j.*添加到类的import代码处。

   好了,基本搞定,现在就可以在你所定义的各个类中添加日志信息了。Public static final Logger = logger.getLogger(类名.class); 然后在具体的代码中添加日志信息,logger.info(“haha,excellent”)

   现在可以调试你的项目就可以看到Console栏中的日志信息还有log.txt文件中的日志信息。

  日志信息解释:%m 输出代码中指定的消息 

  %p 输出优先级,即DEBUGINFOWARNERRORFATAL 

  %r 输出自应用启动到输出该log信息耗费的毫秒数 

  %c 输出所属的类目,通常就是所在类的全名 

  %t 输出产生该日志事件的线程名 

  %n 输出一个回车换行符,Windows平台为“/r/n”Unix平台为“/n” 

  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:20021018 22 10 28 921 

  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

 

    当然,如果你只是想简单的应用系统包中提供的日志包,我们这样使用:

    import java.util.logging.*;

    private static Logger log = Logger.getLogger(你的类名.class.getName());

    在具体需要日志信息的地方记录

    log.severe("severe level");
    log.warning("warning level");
    log.info("info level");

    默认只输出这三个等级。

   

       PS:关于log4j的配置,可以参考下面的博文,http://www.blogjava.net/yczz/articles/41900.html

  

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值