Log4j总结文档Word文档格式.docx
- 文档编号:21366800
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:10
- 大小:22.08KB
Log4j总结文档Word文档格式.docx
《Log4j总结文档Word文档格式.docx》由会员分享,可在线阅读,更多相关《Log4j总结文档Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
1.2Log4j的获取
下载地址是:
http:
//logging.apache.org/site/binindex.cgi,我下载到的版本是:
logging-log4j-1.2.13.tar.gz,解压之后找到:
logging-log4j-1.2.13\logging-log4j-1.2.13\dist\lib目录下的log4j-1.2.13.jarr文件,这就是我们要用的jar文件了,其他文件暂时搁置不动。
把这个文件拷贝到指定位置,比如D:
\Lib目录下。
(待会我们会在应用程序工程中添加这个文件)。
二、在Eclipse中使用Log4j
2.1在Eclipse中使用Log4j
2.1.1新建Java项目时引入
第一种情况是在新建java项目时第二步骤选择【Libraries】-【AddExternalJARs…】选择log4j-1.2.13.jar,点击【打开】回到新建工程第二步骤的界面,点击完成。
这样就引入了需要的库文件了。
2.1.2向已经存在工程添加log4j-1.2.13.jar
如果工程已经存在,通过右击工程名称-【属性】-【java构建路径】-【添加外部JAR(X)】-选择log4j-1.2.13.jar,点击【打开】回到新建工程属性的界面-【确定】会到工程的界面。
2.1.3导入Log4j.properties文件
通过工程的导入功能,直接把Log4j.properties文件导入到与工程最高层的目录。
三、Log4j的配置文件
3.1Log4j的配置文件
Log4J配置文件的基本格式如下:
#配置根Logger
log4j.rootLogger
=
[level]
appenderName1,
appenderName2,
…
#配置日志信息输出目的地Appender
log4j.appender.appenderName
fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1
value1
…
log4j.appender.appenderName.optionN
valueN
#配置日志信息的格式(布局)
log4j.appender.appenderName.layout=fully.qualified.name.of.layout.
class
log4j.appender.appenderName.layout.option1=value1…
log4j.appender.appenderName.layout.optionN=valueN
其中[level]是日志输出级别,共有5级:
FATAL0
ERROR3
WARN4
INFO6
DEBUG7
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{yyyMMMddHH:
mm:
ss,SSS},输出类似:
2002年10月18日22:
10:
28,921
%l输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
举例:
Testlog4.main(TestLog4.java:
10)
1)在程序中调用BasicConfigurator.configure()方法:
给根记录器增加一个ConsoleAppender,输出格式通过PatternLayout设为"
%-4r[%t]%-5p%c%x-%m%n"
,还有根记录器的默认级别是Level.DEBUG.
2)配置放在文件里,通过命令行参数传递文件名字,通过PropertyConfigurator.configure(args[x])解析并配置;
3)配置放在文件里,通过环境变量传递文件名等信息,利用log4j默认的初始化过程解析并配置;
4)配置放在文件里,通过应用服务器配置传递文件名等信息,利用一个特殊的servlet来完成配置。
当调试系统时,我们往往注意的只是异常级别的日志输出,但是通常所有级别的输出都是放在一个文件里的,如果日志输出的级别是BUG!
?
那就慢慢去找吧。
这时我们也许会想要是能把异常信息单独输出到一个文件里该多好啊。
当然可以,Log4j已经提供了这样的功能,我们只需要在配置中修改Appender的Threshold就能实现,比如下面的例子:
[配置文件]
###setloglevels###
log4j.rootLogger=debug,stdout,D,E
###输出到控制台###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE}%5p%c{1}:
%L-%m%n
###输出到日志文件###
log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File=logs/log.log
log4j.appender.D.Append=true
log4j.appender.D.Threshold=DEBUG##输出DEBUG级别以上的日志
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%-d{yyyy-MM-ddHH:
ss}[%t:
%r]-[%p]%m%n
###保存异常信息到单独文件###
log4j.appender.D.File=logs/error.log##异常日志文件名
log4j.appender.D.Threshold=ERROR##只输出ERROR级别以上的日志!
!
%r]-[%p]%m%n
[代码中使用]
publicclassTestLog4j{
publicstaticvoidmain(String[]args){
PropertyConfigurator.configure("
D:
/Code/conf/log4j.properties"
);
Loggerlogger=Logger.getLogger(TestLog4j.class);
logger.debug("
debug"
logger.error("
error"
}
}
四、Log4j输出格式定义
Log4j的格式定义是通过一个“.properties”文件定义的,该文件里面定义了很多关于数定格式和输出位置的元素,看看下面例子的.properties文件(例子中以Log4j.properties为名称)。
切换log4j.rootLogger=debug,B1的B1或是A1,以及注释不同位置,实现日志输出到文件还是控制台。
把这个Log4j.properties文件放置工程的最上层目录(与.jpx文件在同一目录)。
Log4j.properties的内容:
log4j.rootLogger=debug,B1
#打印到文件
#log4j.appender.A1=org.apache.log4j.RollingFileAppender
#log4j.appender.A1.File=example.log
#log4j.appender.A1.MaxFileSize=100KB
#log4j.appender.A1.MaxBackupIndex=1
#log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#log4j.appender.A1.layout.ConversionPattern=%5p[%t](%F:
%L)-%m%n
#打印到控制台
log4j.appender.B1=org.apache.log4j.ConsoleAppender
log4j.appender.B1.layout=org.apache.log4j.PatternLayout
log4j.appender.B1.layout.ConversionPattern=%-4r%-5p[%t]%37c%3x-%m%n
log4j.appender.B1.layout.ConversionPattern=%5p[%t](%F:
五、在Java类文件里使用Log4j
5.1、Import需要的包文件
importorg.apache.log4j.*;
把这个语句放置在文件的Import位置。
5.2定义Logger对象
staticLoggerlogger=Logger.getLogger(Frame1.class.getName());
在程序申明变量的地方定义这个对象,并且是静态对象。
其中的Frame1是你当前类的名称。
5.3装载属性文件
PropertyConfigurator.configure("
Log4j.properties"
);
在jbInit()方法的开始填写这个语句,把属性文件装载过来。
5.4、任何地方可以使用
在需要日志记录的地方输入类似
logger.info("
日志信息"
logger.warn("
logger.debug("
logger.fatal("
logger.error("
比如:
/**
*主窗体组件初始化
*@throwsjava.lang.Exception
*/
privatevoidjbInit()throwsException{
PropertyConfigurator.configure("
logger.info(logonuser+"
初始化开始"
//logonuser是登陆系统的用户名称
……………….
………………
logger.info(logonuser+"
初始化结束"
}
输出结果是:
INFO[AWT-EventQueue-0](mainFrame.java:
503)-Admin初始化开始INFO[AWT-EventQueue-0](mainFrame.java:
1013)-Admin初始化结束
到这里我们就完成了Log4j在Eclipse中的应用过程,输出日志的格式是不是很整齐,输出到文件的测试一样的过程,只是在Log4j.properties改成:
log4j.rootLogger=debug,A1
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.File=example.log
log4j.appender.A1.MaxFileSize=100KB
log4j.appender.A1.MaxBackupIndex=1
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%5p[%t](%F:
#log4j.appender.B1=org.apache.log4j.ConsoleAppender
#log4j.appender.B1.layout=org.apache.log4j.PatternLayout
#log4j.appender.B1.layout.ConversionPattern=%-4r%-5p[%t]%37c%3x-%m%n
#log4j.appender.B1.layout.ConversionPattern=%5p[%t](%F:
Log4j会在与Log4j.properties同目录的地方创建example.log文件,并记录日志信息,当文件的尺寸大于100KB时,log4J会创建一个新的example.log文件,同时备份example.log文件。
备份的文件个数取决于MaxBackupIndex属性。
5.5一个普通的应用结构如下的内容:
packagecom.log4j;
/**
*@authorJem.lee
*/
publicclassMyLogTest{
staticLoggerlogger=Logger.getLogger(MyLogTest.class.getName());
publicstaticvoidmain(String[]args){
MyLogTest.logger.info("
测试信息开始"
测试信息结束"
}
输出结果
INFO[main](MyLogTest.java:
16)-测试信息开始
17)-测试信息结束
Log4j常用配置(.properties和.xml)
常用log4j配置,一般可以采用两种方式,.properties和.xml,下面举两个简单的例子:
一、log4j.properties
###设置org.zblog域对应的级别INFO,DEBUG,WARN,ERROR和输出地A1,A2##
log4j.category.org.zblog=ERROR,A1
log4j.category.org.zblog=INFO,A2
log4j.appender.A1=org.apache.log4j.ConsoleAppender
###设置输出地A1,为ConsoleAppender(控制台)##
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
###设置A1的输出布局格式PatterLayout,(可以灵活地指定布局模式)##
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-ddHH:
ss,SSS}[%c]-[%p]%m%n
###配置日志输出的格式##
log4j.appender.A2=org.apache.log4j.RollingFileAppender
###设置输出地A2到文件(文件大小到达指定尺寸的时候产生一个新的文件)##
log4j.appender.A2.File=E:
/study/log4j/zhuwei.html
###文件位置##
log4j.appender.A2.MaxFileSize=500KB
###文件大小##
log4j.appender.A2.MaxBackupIndex=1
log4j.appender.A2.layout=org.apache.log4j.HTMLLayout
##指定采用html方式输出
二、log4j.xml
<
?
xmlversion="
1.0"
encoding="
GB2312"
?
>
DOCTYPElog4j:
configurationSYSTEM"
log4j.dtd"
log4j:
configurationxmlns:
log4j="
//jakarta.apache.org/log4j/"
appendername="
org.zblog.all"
class="
org.apache.log4j.RollingFileAppender"
--设置通道ID:
org.zblog.all和输出方式:
org.apache.log4j.RollingFileAppender-->
<
paramname="
File"
value="
E:
/study/log4j/all.output.log"
/>
--设置File参数:
日志输出文件名-->
Append"
false"
--设置是否在重新启动服务时,在原有日志的基础添加新日志-->
MaxBackupIndex"
10"
layoutclass="
org.apache.log4j.PatternLayout"
ConversionPattern"
%p(%c:
%L)-%m%n"
--设置输出文件项目和格式-->
/layout>
/appender>
org.zblog.zcw"
/study/log4j/zhuwei.output.log"
Appen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Log4j 总结 文档