• content
    {:toc}

Log4j工具类。

Log4j

xml

appenders:输出位置

loggers

<logger>元素标记配置,必须有name属性,可选level,additivity

可以配置一个到多个子元素<appender-ref>,当发生logevent时,每一个appender都会被调用。

每一个configuration,都必须有一个root logconfig,如果不显示指定,默认。

appender

使用特殊的appender元素标记,或者使用appender元素标记,且指定type属性。

必须有name属性,且唯一。提供给logger使用。

一些appender可以有自定义的layout子元素标记,关于layout元素标记,可以使用特殊的layout元素标记,也可以使用带有type属性的layout标记。

filters

可以出现在4个位置:

  1. 在和appenders,loggers,properties 元素的同级别。 过滤选择接受或拒绝在传入logconfig之前。
  2. logger元素的子元素。 接受或拒绝特定的logger元素。
  3. 在appender元素的子元素。
  4. 在appender引用的元素中。 用于确定logevent是否应该从logger路由到appender 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug" name="XMLConfigTest" packages="org.apache.logging.log4j.test">
<Properties>
<Property name="filename">target/test.log</Property>
</Properties>
<ThresholdFilter level="trace"/>

<Appenders>
<Console name="STDOUT">
<PatternLayout pattern="%m MDC%X%n"/>
</Console>
<Console name="FLOW">
<!-- this pattern outputs class name and line number -->
<PatternLayout pattern="%C{1}.%M %m %ex%n"/>
<filters>
<MarkerFilter marker="FLOW" onMatch="ACCEPT" onMismatch="NEUTRAL"/>
<MarkerFilter marker="EXCEPTION" onMatch="ACCEPT" onMismatch="DENY"/>
</filters>
</Console>
<File name="File" fileName="${filename}">
<PatternLayout>
<pattern>%d %p %C{1.} [%t] %m%n</pattern>
</PatternLayout>
</File>
<List name="List">
</List>
</Appenders>

<Loggers>
<Logger name="org.apache.logging.log4j.test1" level="debug" additivity="false">
<ThreadContextMapFilter>
<KeyValuePair key="test" value="123"/>
</ThreadContextMapFilter>
<AppenderRef ref="STDOUT"/>
</Logger>

<Logger name="org.apache.logging.log4j.test2" level="debug" additivity="false">
<Property name="user">${sys:user.name}</Property>
<AppenderRef ref="File">
<ThreadContextMapFilter> **4**
<KeyValuePair key="test" value="123"/>
</ThreadContextMapFilter>
</AppenderRef>
<AppenderRef ref="STDOUT" level="error"/>
</Logger>

<Root level="trace">
<AppenderRef ref="List"/>
</Root>
</Loggers>

</Configuration>

含有properties的配置

Propery属性