配置文件类型:
log4j是通过一个.properties的文件作为主配置文件的,而现在的log4j 2则已经弃用了这种方式,采用的是.xml,.json或者.jsn这种方式来做,可能这也是技术发展的一个必然性,毕竟properties文件的可阅读性真的是有点差。
log4j 2.x版本的xml配置文件名必须为log4j2.xml
基本版本:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
高级版本:
<?xml version="1.0" encoding="UTF-8"?>
<!-- status=debug 可以查看log4j的装配过程 -->
<configuration status="off" monitorInterval="1800">
<appenders>
<!-- 定义控制台输出 -->
<Console name="Console" target="SYSTEM_OUT" follow="true">
<!-- 输出的内容格式 -->
<PatternLayout
pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
</Console>
<!-- 系统打印日志
fileName:文件名
filePattern:文件的名字格式
-->
<RollingRandomAccessFile name="System"
fileName="logs/system.log" filePattern="logs/system_%d{yyyy-MM-dd}_%i.log">
<!-- 输出的内容格式 -->
<PatternLayout
pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
<Policies>
<!-- 如果日志的文件超过100M,重新创建一个新文件 -->
<TimeBasedTriggeringPolicy interval="1"
modulate="true" />
<SizeBasedTriggeringPolicy size="100M" />
</Policies>
</RollingRandomAccessFile>
</appenders>
<loggers>
<!-- Root Logger 默认的 -->
<root level="info">
<!-- ref:指的是appenders子标签的name值
只有控制台
-->
<appender-ref ref="Console" />
<appender-ref ref="System" />
</root>
<!-- 外部日志,分开日志,name为getLogger()
除了控制台还有文件(System)
-->
<logger name="SystemLog" level="info" additivity="false">
<appender-ref ref="Console" />
<appender-ref ref="System" />
</logger>
</loggers>
</configuration>