log4j配置 log4j架构 log4j示例程序 上一章解释了log4j的核心组件。本章介绍如何使用配置文件配置核心组件。配置log4j涉及分配Level,定义Appender以及在配置文件中指定Layout对象。 的 log4j.properties 文件是一个log4j的配置文件其中保持在键-值对的特性。默认情况下,LogManager将在 CLASSPATH中 查找名为 log4j.properties 的文件。 ** 根记录器的级别定义为 DEBUG 。在 DEBUG 重视名为X给它的附加目的地。 将名为X的appender设置为有效的appender。 设置appender X的布局。 log4j.properties语法: 以下是appender X 的 log4j.properties 文件的语法: # Define the root logger with appender X log4j.rootLogger = DEBUG, X # Set the appender named X to be a File appender log4j.appender.X=org.apache.log4j.FileAppender # Define the layout for X appender log4j.appender.X.layout=org.apache.log4j.PatternLayout log4j.appender.X.layout.conversionPattern=%m%n log4j.properties示例 使用上面的语法,我们在 log4j.properties 文件中定义了以下内容: 根记录器的级别定义为 DEBUG , DEBUG appender将 FILE 命名为它。 appender FILE 被定义为 org.apache.log4j.FileAppender 。它写入位于 日志 目录中的名为 log.out 的文件。 ** 定义的布局模式是 %m%n ,这意味着打印的日志消息后面会跟着一个换行符。 # Define the root logger with appender file log4j.rootLogger = DEBUG, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=${log}/log.out # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n 需要注意的是log4j支持UNIX风格的变量替换,比如$ {variableName}。 调试级别 我们已经和两个appender一起使用了DEBUG。所有可能的选项是: 跟踪 DEBUG 信息 警告 错误 致命 所有 这些级别在本教程后面解释。 附加目的地 Apache log4j提供了Appender对象,它主要负责将日志消息打印到不同的目标,如控制台,文件,套接字,NT事件日志等。 每个Appender对象具有与其关联的不同属性,并且这些属性指示该对象的行为。 属性 描述 布局 Appender使用Layout对象和与它们关联的转换模式来格式化日志记录信息。 目标 目标可能是控制台,文件或其他项目,具体取决于appender。 水平 需要该级别来控制日志消息的过滤。 阈 Appender可以独立于记录器级别设置与其相关的阈值级别。Appender将忽略任何级别低于阈值级别的日志消息。 过滤 Filter对象可以分析级别匹配之外的日志信息,并决定日志请求是由特定的Appender处理还是被忽略。 通过使用以下方法在配置文件中包含以下设置,我们可以将Appender对象添加到记录器: log4j.logger.[logger-name]=level, appender1,appender..n 您可以使用XML格式编写相同的配置,如下所示: <logger name="com.apress.logging.log4j" additivity="false"> <appender-ref ref="appender1"/> <appender-ref ref="appender2"/> </logger> 如果你愿意在程序中添加Appender对象,那么你可以使用下面的方法: public void addAppender(Appender appender); addAppender()方法将一个Appender添加到Logger对象。如示例配置所示,可以将许多Appender对象添加到以逗号分隔的列表中的记录器,每个列表都将记录信息打印到单独的目标。 在上面的示例中,我们只使用了一个Appender FileAppender 。所有可能的appender选项是: AppenderSkeleton AsyncAppender 是ConsoleAppender DailyRollingFileAppender ExternallyRolledFileAppender FileAppender JDBCAppender JMSAppender LF5Appender NTEventLogAppender NullAppender RollingFileAppender进行 SMTPAppender SocketAppender SocketHubAppender SyslogAppender TelnetAppender WriterAppender 我们将在登录文件中介绍FileAppender,并在 登录数据库中介绍JDBC Appender 。 布局 我们已经使用PatternLayout与我们的appender。所有可能的选项是: DateLayout HTMLLayout 的PatternLayout SimpleLayout XMLLayout 使用HTMLLayout和XMLLayout,您也可以生成登录HTML和XML格式。 布局格式 您将在章节中了解如何格式化日志消息:日志格式。 log4j架构 log4j示例程序