配置语法
正如之前的例子所展示的一样,Log4j允许你简单地重新定义记录日志的行为而不需要去修改你的应用。可以禁用应用程序的某些部分的日志记录,只在满足特定标准时记录日志,例如为特定用户执行的操作,路由输出到Flume或者日志系统。要想实现这些东西必须先理解这个配置文件的语法。
配置在xml里面的元素接受这几个属性:
元素名称和描述
advertiser (可选)用于通知单个FileAppender或SocketAppender配置的插件名称。唯一提供的Adverti ser插件是”multicastdns”。
dest 要么”err”,它将输出发送到stderr,或文件路径或URL。
monitorInterval 检查文件配置更改之前必须经过的最短时间(以秒为单位)。
name 配置的名称
packages 以逗号分隔的包名称列表,用于搜索插件。每个类加载器只加载一次插件,因此更改此值可能对重 新配置没有任何影响。
schema 标识类加载器找到用于验证配置的XML模式的位置。仅当strict设置为true时有效。如果未设置, 将不会发生模式验证。
shutdownHook 不管确认与否,Log4j将会自动关闭当JVM关闭的时候。这个关闭hook默认是可用的,可以通过设置属 性为”disable”来禁用。
status 内部的log4j事件等级会被输出到控制台上。有效的属性值分为”trace”, “debug”, “info”, “warn”, “error” 和 “fatal”。Log4j将会把初始化,回滚和其他内部活动记录到状态记录器里。设 置status=”trace”是其中一种提供的第一件工具,如果你需要解决这个log4j的问题。
strict 启用严格的XML语法使用。在JSON的配置里不支持。
verbose 在加载插件时启用诊断信息。
Log4j可以使用两种XML风格进行配置;简洁和严谨。简洁的格式使配置很容易,因为元素名称匹配它们表示的组件,但是它不能用XML模式验证。例如,ConsoleAppender通过在其父appenders元素下声明名为Console的XML元素来配置。但是,元素和属性名称不区分大小写。此外,属性可以指定为XML属性,也可以指定为没有属性且具有文本值的XML元素。所以
<PatternLayout pattern=”%m%n”/>
和
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
是相等的。
下面的文件表示XML配置的结构,注意,下面的斜体元素表示将出现在其位置的简化元素名称。
<?xml version="1.0" encoding="UTF-8"?>;
<Configuration>
<Properties>
<Property name="name1">value</property>
<Property name="name2" value="value2"/>
</Properties>
<filter ... />
<Appenders>
<appender ... >
<filter ... />
</appender>
...
</Appenders>
<Loggers>
<Logger name="name1">
<filter ... />
</Logger>
...
<Root level="level">
<AppenderRef ref="name"/>
</Root>
</Loggers>
</Configuration>
可以在本页面里的sample appender, filter 和 logger declarations。查看更多的例子。