记录程序日志信息的目的是:
- 可以很方便的了解程序的运行情况
- 可以分析用户的操作行为、喜好等信息
- 方便开发人员检查bug
日志等级有5个,从低到高分别是: - DEBUG
- INFO
- WARNING
- ERROR
- CRITICAL
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="error" shutdownHook="disable">
<!-- 公共属性定义 -->
<properties>
<property name="LOG_HOME">logs</property>
<property name="FILE_NAME">paryment</property>
</properties>
<!--先定义所有的appender-->
<appenders>
<!--这个输出控制台的配置-->
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %-60.60clr{%c{1.}.%M(%line)}{cyan} %clr{:}{faint} %m%n"/>
</Console>
<!-- 按时间切分,也可以按大小切分,filePattern 用于指定旧日志文件的命名方式 -->
<RollingFile name="RollingFile" fileName="${LOG_HOME}/${FILE_NAME}_New.log"
filePattern="${LOG_HOME}/%date{yyyyMMdd}/${FILE_NAME}/%d{HH}_New.log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %l - %msg%n"/>
<Policies>
<!-- 默认日志输出策略为间隔 60 分钟生成一个新文件,最小单位为分钟-->
<TimeBasedTriggeringPolicy interval="60"/>
<!-- 或者大小超过 200MB -->
<SizebasedTriggeringPolicy size="20MB"/>
</Policies>
<!-- 每 30 个文件切一次日志文件夹 -->
<DefaultRolloverStrategy max="30"/>
</RollingFile>
<!-- 按时间切分,也可以按大小切分,filePattern 用于指定旧日志文件的命名方式 -->
<Async name="Async">
<AppenderRef ref="RollingFile"/>
</Async>
</appenders>
<!-- 日志器配置-->
<!-- 日志器分为根日志器 root 和自定义日志器,当根据日志名字娶不到指定日志器时,就会使用 root 作为默认的日志器-->
<!-- -->
<!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
<loggers>
<!--根日志器没有名字,没有为代码中指定日志器做配置,默认都走根日志器的配置-->
<Logger name="com.didi.domain" level="info" additivity="false">
<appender-ref ref="RollingFile"/>
</Logger>
<root level="INFO">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFile"/>
</root>
</loggers>
</configuration>```