Log4j 框架是用 Java 语言编写的标准日志记录框架。作为 Jakarta 项目的一部分, 以速度和灵活性为中心概念:

        Log4j 由三个重要的部件构成:记录器( Loggers )、输出源( Appenders )和布局( Layouts )。

    记录器按照布局中指定的格式把日志信息写入一个或多个输出源。输出源可以是控制台、文本文件、 XML 文件或 Socket ,甚至还可以把信息写入到 Windows 事件日志或通过电子邮件发送。我们可以通过配置文件来部署这些组件。

    Log4j提供两种配置方法: 代码配置和文件配置

    Log4j 允许程序员定义多个记录器,每个记录器有自己的名字。但有一个记录器叫根记录器,它永远存在,且不能通过名字检索或引用,在配置文件中,可以如下定义根记录器

log4j.rootLogger  =  [ level ] , appenderName, appenderName, … 

             Level 是记录器的级别,它是日志记录的优先级,分为 OFF FATAL ERROR WARN INFO DEBUG ALL 或者您定义的级别。 Log4j 建议只使用四个级别: ERROR WARN INFO DEBUG :   
右边的级别比左边的高。如果一条log信息的级别,大于等于记录器的级别值,那么记录器就会记录它。例如level被设置为INFO级别,那么应用程序中所有的DEBUG的日志信息将不被打印出来。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。




     日志信息输出源 Appender
           log4j
还允许日志记录请求打印到多个输出目的地,按 log4j 的叫法是输出源。一个记录器可以有多个输出源。一条 log 信息如果可被这个记录器处理,则该记录器会把这条信息送往每个它所拥有的输出源,以及层次结构中更高级的输出源。例如,根记录器以控制台作为输出源,则所有可被纪录的日志都将至少打印到控制台。


# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME / server / default / deploy / log4j.xml !
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
# log4j.rootLogger
= INFO, stdout, logfile         
log4j.rootLogger
= INFO, stdout                 //配置根记录器

配置日志信息输出源,其语法为:


log4j.appender.stdout
= org.apache.log4j.ConsoleAppender                       //控制台
log4j.appender.stdout.layout
= org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern
=% % p [ % c]  -   % m % n

log4j.appender.logfile
= org.apache.log4j.RollingFileAppender                //文件大小到一定就会产生一个新的文件 
log4j.appender.logfile.File
= $ {espc.root} / WEB - INF / espc.log               //指定记录文件的位置  
log4j.appender.logfile.MaxFileSize
= 512KB                                   //文件最大限制
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex
= 3
# Pattern to output: date priority [category] 
-  message
log4j.appender.logfile.layout
= org.apache.log4j.PatternLayout                 //文件的布局
log4j.appender.logfile.layout.ConversionPattern
=% % p [ % c]  -   % m % n          # %d{}:日志信息产生时间      # %p:日志信息级别 # %c:日志信息所在地(类名)
                                                                                                                                                       # %m:产生的日志具体信息# %n:输出日志信息换 行