输入你的邮件地址, 你将不会错过任何关于: [ Java教程
]的信息 |
|
Log4j的使用总结!(用于收藏救急用)
发表日期:2008-1-5
| 
|
1 关于log4j的文章---粗略看了一遍,不错! 出处给忘了似乎是下面这个: http://dev2dev.bea.com.cn/bbs/servlet/D2DServlet/download/124-14026-77822-650/深入学习Log4J.pdf 深入学习Log4J
李翔
内容: 一,Log4J配置文件的学习 二,Log4J数据库 三,Log4J封装 一,Log4J配置文件学习: Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值). 下面我们首先介绍使用Java特性文件做为配置文件的方法: 分析一个配置文件log4j.properties log4j.rootCategory=debug, stdout, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Pattern to output the caller's file name and line number. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=example.log log4j.appender.R.MaxFileSize=100KB # Keep one backup file log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 说明: ①log4j.rootCategory = [ level ] , appenderName, appenderName, 其中,level 是日志记录的优先级,分为OFF,FATAL,ERROR,WA R N,INFO,DEBUG, ALL或者您定义的级别.Log4j建议只使用四个级别,优先级从高到低分别是ERROR, WA R N,INFO,DEBUG.通过在这里定义的级别,您可以控制到应用程序中相应级别的日 志信息的开关.比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息 将不被打印出来.appenderName就是指定日志信息输出到哪个地方.您可以同时指定多个 输出目的地. ②配置日志信息输出目的地Appender,其语法为 log4j.appender.appenderName = fully.qualified.name.of.appender.class log4j.appender.appenderName.option1 = value1
log4j.appender.appenderName.option = valueN 其中,Log4j提供的appender有以下几种: org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), org.apache.log4j.DailyRollingFileAppender(天天产生一个日志文件), org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) ③配置日志信息的格式(布局),其语法为: log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class log4j.appender.appenderName.layout.option1 = value1
log4j.appender.appenderName.layout.option = valueN 其中,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,WA R N,ERROR,FATAL %r 输出自应用启动到输出该log信息耗费的毫秒数 %c 输出所属的类目,通常就是所在类的全名 %t 输出产生该日志事件的线程名 %n 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n" %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式, 比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921 %l 输出日志事件的发生位置,包括类目名,发生的线程,以及在代码中的行数. 对上面log4j.properties配置文件的一个应用;
package log4j; import org.apache.log4j.*; // How to use log4j public class TestLogging { // Initialize a logging category. Here, we get THE ROOT CATEGORY //static Category cat = Category.getRoot(); // Or, get a custom category static Category cat = Category.getInstance(TestLogging.class.getName()); // From here on, log away! Methods are: cat.debug(your_message_string), // cat.info(...), cat.warn(...), cat.error(...), cat.fatal(...) public static void main(String args[]) { // Try a few logging methods PropertyConfigurator.configure ( "log4j.properties" ) ; cat.debug("Start of main()"); cat.info("Just testing a log message with priority set to INFO"); cat.warn("Just testing a log message with priority set to WARN"); cat.error("Just testing a log message with priority set to ERROR"); cat.fatal("Just testing a log message with priority set to FATAL"); // Alternate but INCONVENIENT form cat.log(Priority.DEBUG, "Calling init()"); new TestLogging().init(); } public void init() { java.util.Properties prop = System.getProperties(); java.util.Enumeration enum = prop.propertyNames(); cat.info("***System Environment As Seen By Java***"); cat.debug("***Format: PROPERTY = VALUE***"); while (enum.hasMoreElements()) { String key = (String) enum.nextElement(); cat.info(key + " = " + System.getProperty(key)); } } } xml格式的log4j配置文件概述 xml格式的log4j配置文件需要使用org.apache.log4j.html.DOMConfigurator.configure()方法来 读入.对xml文件的语法定义可以在log4j的发布包中找到:org/apache/log4j/xml/log4j.dtd. Xml的一个配置文件:sample1.xml 说明: ①xml配置文件的头部包括两个部分:xml声明和dtd声明.头部的格式如下:
②log4j:configuration (root element) xmlns:log4j [#FIXED attribute]: 定义log4j的名字空间,取定值"http://jakarta.apache.org/log4j/" appender [* child] : 一个appender子元素定义一个日志输出目的地 logger [* child] : 一个logger子元素定义一个日志写出器 root [ child] : root子元素定义了root logger 源代码: package exampleslog4j.xml; import org.apache.log4j.xml.DOMConfigurator; import org.apache.log4j.Category; import java.net.*; public class XMLSample { static Category cat = Category.getInstance(XMLSample.class.getName()); public static void main(String argv[]) { if(argv.length == 1) init(argv[0]); else Usage("Wrong number of arguments."); sample(); } static void Usage(String msg) { System.err.println(msg); System.err.println( "Usage: java " + XMLSample.class.getName() + "configFile"); System.exit(1); } static void init(String configFile) { DOMConfigurator.configure(configFile); } static void sample() { int i = -1; Category root = Category.getRoot(); cat.debug("Message " + ++i); cat.warn ("Message " + ++i); cat.error("Message " + ++i); Exception e = new Exception("Just testing"); cat.debug("Message " + ++i, e); } } 执行后的效果: 2004-05-24 22:07:28,352 DEBUG [main] xml.XMLSample (XMLSample.java:55) - Message 0 2004-05-24 22:07:28,352 WARN [main] xml.XMLSample (XMLSample.java:56) - Message 1 进入讨论组讨论。
|
|
|
上一篇:Junit 的使用经验总结
人气:450
下一篇:HIbernate的参数使用说明
人气:374 |
浏览全部Java的内容
Dreamweaver插件下载
常用网页广告代码全集
|
|