概述
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、 配置日志信息输出目的地
语法表示: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(将日志信息以流格式发送到任意指定的地方)
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样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式等等。
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(包含日志产生的时间、线程、类别等等信息)
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组件说明的一个简化;下面给出一个具体配置例子,在程序中可以参照执行:
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: 输出日志信息换行
-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.
最后
以上就是活力导师为你收集整理的使用实例教你如何使用log4j的全部内容,希望文章能够帮你解决使用实例教你如何使用log4j所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复