浅谈在JAVA项目中LOG4J的使用
一、直接使用: //输出到项目文件夹下output1.txt文件中 ////////////////////////////// // DEBUG - Here is some DEBUG // INFO - Here is some INFO // WARN - Here is some WARN // ERROR - Here is some ERROR // FATAL - Here is some FATAL ////////////////////////////// package hunnu.sanha.test; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.SimpleLayout; import org.apache.log4j.FileAppender; public class Simpandfile { static Logger logger = Logger.getLogger(Simpandfile.class); public static void main(String args[]) { SimpleLayout layout = new SimpleLayout(); FileAppender appender = null; try { appender = new FileAppender(layout,"output1.txt",false); } catch(Exception e) {} logger.addAppender(appender); logger.setLevel((Level) Level.); logger.debug("Here is some DEBUG"); logger.info("Here is some INFO"); logger.warn("Here is some WARN"); logger.error("Here is some ERROR"); logger.fatal("Here is some FATAL"); } } //按格式输出到项目文件夹下output2.html package hunnu.sanha.test; import java.io.*; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.HTMLLayout; import org.apache.log4j.WriterAppender; public class Htmlandwrite { static Logger logger = Logger.getLogger(Htmlandwrite.class); public static void main(String args[]) { HTMLLayout layout = new HTMLLayout(); WriterAppender appender = null; try { FileOutputStream output = new FileOutputStream("output2.html"); appender = new WriterAppender(layout,output); } catch(Exception e) {} logger.addAppender(appender); logger.setLevel((Level) Level.); logger.debug("Here is some DEBUG"); logger.info("Here is some INFO"); logger.warn("Here is some WARN"); logger.error("Here is some ERROR"); logger.fatal("Here is some FATAL"); } } //输出到控制台 //////////////////////////////////////////////////////////////////////////////////////////////////////////// Milliseconds since program start: 0 Classname of caller: hunnu.sanha.test.Consandpatt Date in ISO8601 format: 2008-07-29 11:02:30,578 Location of log event: hunnu.sanha.test.Consandpatt.main(Consandpatt.java:20) Message: Here is some DEBUG Milliseconds since program start: 15 Classname of caller: hunnu.sanha.test.Consandpatt Date in ISO8601 format: 2008-07-29 11:02:30,593 Location of log event: hunnu.sanha.test.Consandpatt.main(Consandpatt.java:21) Message: Here is some INFO Milliseconds since program start: 15 Classname of caller: hunnu.sanha.test.Consandpatt Date in ISO8601 format: 2008-07-29 11:02:30,593 Location of log event: hunnu.sanha.test.Consandpatt.main(Consandpatt.java:22) Message: Here is some WARN Milliseconds since program start: 15 Classname of caller: hunnu.sanha.test.Consandpatt Date in ISO8601 format: 2008-07-29 11:02:30,593 Location of log event: hunnu.sanha.test.Consandpatt.main(Consandpatt.java:23) Message: Here is some ERROR Milliseconds since program start: 15 Classname of caller: hunnu.sanha.test.Consandpatt Date in ISO8601 format: 2008-07-29 11:02:30,593 Location of log event: hunnu.sanha.test.Consandpatt.main(Consandpatt.java:24) Message: Here is some FATAL /////////////////////////////////////////////////////// package hunnu.sanha.test; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.PatternLayout; import org.apache.log4j.ConsoleAppender; public class Consandpatt { static Logger logger = Logger.getLogger(Consandpatt.class); public static void main(String args[]) { // Note,%n is newline String pattern = "Milliseconds since program start: %r %n"; pattern += "Classname of caller: %C %n"; pattern += "Date in ISO8601 format: %d{ISO8601} %n"; pattern += "Location of log event: %l %n"; pattern += "Message: %m %n %n"; PatternLayout layout = new PatternLayout(pattern); ConsoleAppender appender = new ConsoleAppender(layout); logger.addAppender(appender); logger.setLevel((Level) Level.); logger.debug("Here is some DEBUG"); logger.info("Here is some INFO"); logger.warn("Here is some WARN"); logger.error("Here is some ERROR"); logger.fatal("Here is some FATAL"); } } 二、使用配置文件(都直接放到项目文件夹下) //xmllog4jconfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="appender" class="org.apache.log4j.FileAppender"> <param name="File" value="Indentify-Log.txt"/> <param name="Append" value="false"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %p - %m%n"/> </layout> </appender> <root> <priority value ="debug"/> <appender-ref ref="appender"/> </root> </log4j:configuration> //Externalxmltest.java package hunnu.sanha.external; import org.apache.log4j.Logger; import org.apache.log4j.xml.DOMConfigurator; public class Externalxmltest { static Logger logger = Logger.getLogger(Externalxmltest.class); public static void main(String args[]) { DOMConfigurator.configure("xmllog4jconfig.xml"); logger.debug("Here is some DEBUG"); logger.info("Here is some INFO"); logger.warn("Here is some WARN"); logger.error("Here is some ERROR"); logger.fatal("Here is some FATAL"); } } //结果输出到Indentify-Log.txt文件中 2008-07-29 10:48:11,375 [main] DEBUG - Here is some DEBUG 2008-07-29 10:48:11,375 [main] INFO - Here is some INFO 2008-07-29 10:48:11,375 [main] WARN - Here is some WARN 2008-07-29 10:48:11,375 [main] ERROR - Here is some ERROR 2008-07-29 10:48:11,375 [main] FATAL - Here is some FATAL // plainlog4jconfig.txt # initialise root logger with level DEBUG and call it BLAH log4j.rootLogger=DEBUG,BLAH # add a ConsoleAppender to the logger BLAH log4j.appender.BLAH=org.apache.log4j.ConsoleAppender # set set that layout to be SimpleLayout log4j.appender.BLAH.layout=org.apache.log4j.SimpleLayout //Externalplaintest.java package hunnu.sanha.external; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class Externalplaintest { static Logger logger = Logger.getLogger(Externalplaintest.class); public static void main(String args[]) { PropertyConfigurator.configure("plainlog4jconfig.txt"); logger.debug("Here is some DEBUG"); logger.info("Here is some INFO"); logger.warn("Here is some WARN"); logger.error("Here is some ERROR"); logger.fatal("Here is some FATAL"); } } //结果输出到控制台 DEBUG - Here is some DEBUG INFO - Here is some INFO WARN - Here is some WARN ERROR - Here is some ERROR FATAL - Here is some FATAL 附加: 2.1. 日志信息的优先级 分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。 2.2. 输出源的使用 有选择的能用或者禁用日志请求仅仅是Log4j的一部分功能。Log4j允许日志请求被输出到多个输出源。用Log4j的话说,一个输出源被称做一个Appender。 2.2.1. ConsoleAppender
2.2.2. FileAppender 使用FileAppender,那么log信息将写到指定的文件中。这应该是比较经常使用到的情况。 2.2.3. DailyRollingAppender 使用FileAppender可以将log信息输出到文件中,但是如果文件太大了读起来就不方便了。这时就可以使用DailyRollingAppender。DailyRollingAppender可以把Log信息输出到按照日期来区分的文件中。配置文件就会每天产生一个log文件,每个log文件只记录当天的log信息: 2.2.4. org.apache.log4j.RollingFileAppender
2.2.5. org.apache.log4j.WriterAppender 将日志信息以流格式发送到任意指定的地方。 2.3. Layout的配置 Layout指定了log信息输出的样式。 2.3.1. 布局样式 org.apache.log4j.HTMLLayout(以HTML表格形式布局), 2.3.2. 格式
2.3.3. 例子 例子1:显示日期和log信息 例子2:显示日期,log发生地方和log信息 2.4. 配置文件的例子: log4j.rootLogger=DEBUG #A1--打印到屏幕上 #A2--打印到文件DAOLog中--专门为DAO层服务 #A3--打印到文件BusinessLog中--专门记录逻辑处理层服务log信息 #A4--打印到文件alllog中--记录所有log信息 以上这篇浅谈在JAVA项目中LOG4J的使用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |