log4j十一个开源的日志记录组件,在工程中用于代替System.out语句。 它允许开发人员以任意的精细程度控制哪些日志说明被输出,通过使用外部的配置文件,可以在运行的时候配置它。 Log4jPO有三个主要的组件:Loggers(记录器)、Appenders(输出源)、Layout(布局),可以简单的理解为日志类别,日志要输的地方、输出的格式。 Loggers组件在此系统中被分为五个级别:DEBUG<INFO<WARN<ERROR<FATAL。这五个级别是有顺序的。 DEBUG Log4j有一个规则:假设Loggers级别为P,如果在Loggers中发生了一个级别Q比P高,则可以启动,否则屏蔽掉。 有时用户希望根据自己的喜好格式化自己的日志输出。Log4j可以在Appenders的后面附加Layouts来完成这个功能。 Layouts提供了 四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式等等。 import org.apache.log4j.BasicConfigurator; //需将jar文件引入到classpath之中 import org.apache.log4j.Level; import org.apache.log4j.Logger; public class Log4jTest { public static void main(String args[]){ Logger logger = Logger.getLogger(Log4jTest.class); BasicConfigurator.configure(); logger.setLevel(Level.WARN); //配置根Logger,设置等级,只有等级以上的才可以输出,通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。 logger.info("This is an info."); logger.warn("This is an wanrning."); logger.error("This is an error."); logger.fatal("This is an fatal error."); return; } } Log4j的配置 1、建立Logger实例: Logger logger = Logger.getLogger(ServerWithLog4j.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.fatal(Object message); //致命错误信息 配置日志信息输出目的地,其语法为: log4j.appender.appenderName = fully.qualified.name.of.appender.class // "fully.qualified.name.of.appender.class" 可以指定下面五个目的地中的一个: 1.org.apache.log4j.ConsoleAppender(控制台) 2.org.apache.log4j.FileAppender(文件) 3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件) 4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件) 5.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 配置日志信息的格式,其语法为: A. log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class "fully.qualified.name.of.layout.class" 可以指定下面4个格式中的一个: 1.org.apache.log4j.HTMLLayout(以HTML表格形式布局), 2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式), 3.org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), 4.org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 理解下面的三者的关系: Log4j Apache commons logging java log dpi