网站建设中,我们非常的看重日志,那么如何更好的管理网站制作中的日志呢,使其更方便,功能更强大。这里我们使用log4j框架。
Log4j.jar三个部分:
1:jar
2:配置文件
3:程序里使用log4j
第一部分:JAR
下载jar,运行时和编译时都需要这个jar
第二部分:配置文件
Log4j支持两种形式的配置文件,xml和properties文件,这里我们就讲述最常用的properties配置文件
配置文件中需要配置三部分,根目录(级别和目的地)、目的地、输出格式。我们先来看下log4j的类关系图:
根目录:日志写出器,供程序员在程序里调用log4j
目的地:把格式好的日志文件输出到指定地点
输出格式:格式日志文件
一:根目录:
log4j.rootLogger=debug,appender1,appender2,............
定义总的级别和目的地,目的地是可以多个,级别是总的,当然也可以对每一个目的地进行单独设置输出级别。
级别有:优先级:ALL
二:目的地
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
log4j.appender.appender1.属性=....
这是语法格式。
目的地类型有五种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
现在,我们挨着每一个目的地的属性进行解释。
先来看下控制台输出的属性:
Threshold=WARN:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
Target=System.err:默认情况下是:System.out,指定输出控制台
再来看下文件目的地的属性:
Threshold=WARN:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
再来看下每天产生一个文件的目的地的属性:
Threshold=WARN:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
DatePattern=''.''yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。
当然也可以指定按月、周、天、时和分。即对应的格式如下:
1)''.''yyyy-MM:
2)''.''yyyy-ww:
3)''.''yyyy-MM-dd:
4)''.''yyyy-MM-dd-a:
5)''.''yyyy-MM-dd-HH:
6)''.''yyyy-MM-dd-HH-mm:
来看下指定文件大小的目的地的属性:
Threshold=WARN:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
MaxFileSize=100KB:
MaxBackupIndex=2:指定可以产生的滚动文件的最大数。
三:日志格式
日志格式的语法为:
log4j.appender.appenderName.layout
log4j.appender.appenderName.layout.属性
„
log4j.appender.appenderName.layout.属性
其中格式类型有这么几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
我们来看下每一种日志格式的各种属性解释
先来看下html表格形式布局的日志格式的属性:
LocationInfo=true:默认值是false,输出java文件名称和行号
Title=my
再来看下PatternLayout格式的属性
ConversionPattern=%m%n
Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下:
og4j.appender.A1.layout.ConversionPattern=%-4r
这里需要说明的就是日志信息格式中几个符号所代表的含义:
-X号:
%p:
%d:
比如:%d{yyy
%r:
%c:
%t:
%l:
举例:Testlog4.main(TestLog4.java:10)
%x:
%%:
%F:
%L:
%m:
%n:
可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
1) c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。
2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。
3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
4) .30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出的字符截掉
第三部分:java程序中使用log4j
private
public
//
logger.debug("This
//
logger.info("This
//
logger.error("This
}
步骤:
1:第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:
public
2:当获得了日志记录器之后,第二步将配置Log4j环境,其语法为:
BasicConfigurator.configure
PropertyConfigurator.configure
DOMConfigurator.configure
如果程序中没有读取配置文件的句子,那么就会默认的去加载在src下的log4j.properties配置文件
3:插入记录信息(格式化日志信息)
当上两个必要步骤执行完毕,您就可以轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:
Logger.debug
Logger.info
Logger.warn
Logger.error