日志系统Log4j 2.x版本基本版本和高级版本xml配置文件
配置文件类型:
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>