使用实例教你如何使用log4j

 
        Log4j对于大多数搞java的人,这一名词并不陌生,它是一个非常好用的日志系统。那么如何更快速的掌握它并使用它呢,有些人会看log4j官方提供的文档,也有些人会找些教程,但我觉得如果想快速入门的话,使用实例学新的东西是最简单直接的方法,当然如果你想深入了解它的话,简单的学习实例是不够的,最好是看它的源代码,了解其具体实现,下面我们将通过一个简单的实例,初步认识log4j.
首先你必须到log4j官方网站下载log4j,然后与下面的程序放在同一目录下
 
源程序:
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.Logger;
 
public class LoggerTest {
 
 static Logger logger = Logger.getLogger(LoggerTest.class.getName());
 
 public static void main(String[] args) {
    if(args.length != 1) {
      System.out.println("Incorrect number of parameters.");
    }
 
    PropertyConfigurator.configure(args[0]);
 
    logger.info("Begining to write info to the logging file");
    logger.info("Exiting main method.");   
 }
 
}
 
 
配置文件log4j.properties具体内容如下:
配置文件如下:
# 设置A2可用
log4j.rootLogger=INFO, A2
 
#设置日志输出方式为“控制台输出”
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.Threshold=ERROR
 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%p [%t] %c{2} (%M:%L) - %m%n
 
# Appender A2 writes to the file "test" in user's home.
#log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2=org.apache.log4j.RollingFileAppender
#日志输出文件
log4j.appender.A2.File=E://log4j//test.log
#日志文件大小
log4j.appender.A2.MaxFileSize=1024KB
#日志文件最大备份数
log4j.appender.A2.MaxBackupIndex=10
 
# Truncate 'test' if it aleady exists.
#如果日志文件存在,则追加
log4j.appender.A2.Append=true
 
# Appender A2 uses the PatternLayout.
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern= %5r %-5p [%d{yyyy-MM-dd HH:mm:ss}] %c{2} - %m%n
 
下面对上述的源程序以及配置文件进行分析:
1、 建立Logger实例:
    语法表示:public static Logger getLogger( String name)
    实际使用:static Logger logger = Logger.getLogger(LoggerTest.class.getName());
2、 读取配置文件:
    获得了Logger的实例之后,接下来将配置Log4j使用环境:
    语法表示:
    BasicConfigurator.configure():自动快速地使用缺省Log4j环境。
    PropertyConfigurator.configure(String configFilename):读取使用Java的特性文件编写的配置文件。
    DOMConfigurator.configure(String filename):读取XML形式的配置文件。
    实际使用:PropertyConfigurator.configure("ServerWithLog4j.properties");
3、 插入日志信息
    完成了以上连个步骤以后,下面就可以按日志的不同级别插入到你要记录日志的任何地方了。
    语法表示:
    Logger.debug(Object message);
    Logger.info(Object message);
    Logger.warn(Object message);
    Logger.error(Object message);
    实际使用:logger.info("ServerSocket before accept: " + server);
 
    在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义。定义步骤就是对Logger、Appender及Layout的分别使用,具体如下:
1、 配置根Logger,其语法为:
    log4j.rootLogger = [ level ] , appenderName, appenderName, …
这里level指Logger的优先级,appenderName是日志信息的输出地,可以同时指定多个输出地。如:log4j.rootLogger= INFO,A1,A2
2、 配置日志信息输出目的地
禁用与使用日志请求只是Log4j其中的一个小小的地方,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 =org.apache.log4j.RollingFileAppender
   
3、 配置日志信息的格式
   有时用户希望根据自己的喜好格式化自己的日志输出。Log4j可以在Appenders的后面附加Layouts来完成这个功能。Layouts提供了四 种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式等等。
其语法表示为:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
可以指定上述4种格式的一种:
log4j.appender. appenderName.layout=org.apache.log4j.PatternLayout
    这里上面三个步骤是对前面Log4j组件说明的一个简化;下面给出一个具体配置例子,在程序中可以参照执行:
    log4j.rootLogger=INFO,A2
    log4j.appender.A2=org.apache.log4j.RollingFileAppender
    log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern= %5r %-5p [%d{yyyy-MM-dd HH:mm:ss}] %c{2} - %m%n
    这里需要说明的就是日志信息格式中几个符号所代表的含义:
    -X号: X信息输出时左对齐;
    %p: 日志信息级别
    %d{}: 日志信息产生时间
    %c: 日志信息所在地(类名)
    %m: 产生的日志具体信息
    %n: 输出日志信息换行

 
执行例子程序,将在E:/log4j/下产生一个test.log日志文件,日志文件内容如下:
    0 INFO [2008-03-13 11:29:00] LoggerTest - Begining to write info to the logging file
    0 INFO [2008-03-13 11:29:00] LoggerTest - Exiting main method.
 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值