日志级别简述:
trace | 追踪,就是程序推进一下,可以写个trace输出 |
debug | 调试,一般作为最低级别,trace基本不用。 |
info | 输出重要的信息,使用较多 |
warn | 警告,有些信息不是错误信息,但也要给程序员一些提示。 |
error | 错误信息。用的也很多。 |
fatal | 致命错误 |
日志输出形式
console | 输出到控制台 |
file | 输出到文件 |
日志配置的三大元素
configuration | 根节点 |
appender | 附加器,用与声明日志的打印方式,一般是Console,File,RollingFile |
loggers | 引用附加器,声明调用附加器的点,root节点是必须配置的,代表全局的日志打印配置,logger代表局部自定义的日志打印配置 |
日志配置的具体属性配置:
<?xml version="1.0" encoding="UTF-8"?>
<!--根节点Configuration两个属性:status:用来指定log4j本身的打印日志的级别 monitorinterval:用于指定log4j自动重新配置的监测间隔时间,单位是s,最小是5s-->
<configuration status="info" monitorinterval="5" ><!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --><!-- 自定义变量--><properties><property name="logPath" value="D:/log"/></properties><!--附加器节点 Appenders节点 : 常见的有三种子节点:Console、RollingFile、File; .--><appenders> <!--Console节点用来定义输出日志到控制台的Appender--><!--name:指定Appender的名字.--><!--target:SYSTEM_OUT 或 SYSTEM_ERR,一般只设置默认:SYSTEM_OUT.--><Console name="Console" target="SYSTEM_OUT"><!--输出格式--><!--SimpleLayout 以简单的形式显示--><!--HTMLLayout 以HTML表格显示--><!--PatternLayout 自定义形式显示 不设置默认为:%m%n--><!-- %d{HH:mm:ss.SSS} 表示输出到毫秒的时间--><!-- %t 输出当前线程名称--><!-- %-5level 输出日志级别,-5表示左对齐并且固定输出5个字符,如果不足在右边补0--><!-- %logger 输出logger名称--><!-- %msg 日志文本--><!-- %n 换行--><!-- %F 输出所在的类文件名,如Log4j2Test.java--><!-- %L 输出行号--><!-- %M 输出所在方法名--><!-- %l 输出语句所在的行数, 包括类名、方法名、文件名、行数--><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></Console><!--File节点用来定义输出到指定位置的文件的Appender--><!--name:指定Appender的名字.--><!--fileName:指定输出日志的目的文件带全路径的文件名.--><file name="file" fileName="${logPath}/fileLog/myFile.log"><!--PatternLayout 自定义形式显示 不设置默认为:%m%n--><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></file><!--RollingFile节点用来定义超过指定条件自动删除旧的创建新的Appender--><!--name:指定Appender的名字.--><!--fileName:指定输出日志的目的文件带全路径的文件名.--><!--filePattern : 指定当发生Rolling时,文件的转移和重命名规则.--><RollingFile name="rollingFile" fileName="${logPath}/rollingFileLog/rollingFile.log" filepattern="${logPath}/rollingFileLog/rollingFile-%d{yyyy-MM-dd}_%i.log.gz"><!--PatternLayout 自定义形式显示 不设置默认为:%m%n--><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/><!--Policies:指定滚动日志的策略,就是什么时候进行新建日志文件输出日志.--><Policies ><!--TimeBasedTriggeringPolicy:Policies子节点,基于时间的滚动策略,nterval属性用来指定多久滚动一次,默认是1 hour。modulate=true用来调整时间:以凌晨为零点为基准线,interval是6,那么第一次滚动是在 0+6点 第二次就是 0+6+6=12点 --><TimeBasedTriggeringPolicy interval="6"/><!--SizeBasedTriggeringPolicy:Policies子节点,基于指定文件大小的滚动策略,size属性用来定义每个日志文件的大小.--><SizeBasedTriggeringPolicy size="10MB"/><!--DefaultRolloverStrategy:用来指定同一个文件夹下最多有几个日志文件时开始删除最旧的,创建新的(通过max属性),不设置则默认为最多同一文件夹下7个文件开始覆盖--><DefaultRolloverStrategy max="5"/></Policies></RollingFile></appenders><!--在loggers中引用appender附加器 Root节点用来指定项目的根日志,如果没有单独指定Logger,那么就会默认使用该Root日志输出--><loggers><!--Logger节点用来单独指定日志的形式,name:用来指定该Logger所适用的类或者类所在的包全路径,继承自Root节点。--><logger name="com.example" level="info" additivity="false"><AppenderRef ref="Console"/></logger><!--若是additivity设为false,则只会在自己的appender里输出,而不会在 父Logger(一般是指root节点) 的appender里输出。--><Logger name="org.springframework" level="info" additivity="false"><AppenderRef ref="Console"/></Logger><!--根节点附加器,全局--><root level="info"> <!-- AppenderRef子节点,用来指定该日志输出到哪个Appender.--><appender-ref ref="Console"/><appender-ref ref="file"/><appender-ref ref="rollingFile"/></root></loggers>
</configuration>