日志级别
log4j规定了默认的几个级别:
- trace<debug<info<warn<error<fatal
简单配置
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
</Appenders>
<Loggers>
<logger name="org.hibernate" level="info"></logger>
<root level="debug">
<AppenderRef ref="Console" />
</root>
</Loggers>
</Configuration>
- Appenders:记录方式(Console/ RollingFile / RollingRandomAccessFile)
- Console :将日志在控制台输出
- RollingFile:将日志输出到文件中
- PatternLayout:日志输出的格式
- Loggers:日志定义
- logger :起过滤作用,用name指定包名,level指定级别,日志级别之下不输出
- root :level属性定义日志级别
- AppenderRef:关联的日志进行输出
<RollingFile name="errorfile" fileName="../logs/error.log" filePattern="../logs/error.log.%d{yyyy-MM-dd}">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
- Filters:过滤日志输出的级别
- Policies:日志文件产生的策略
- TimeBasedTriggeringPolicy:表示每隔一定的时间就产生一个新的日志文件
<RollingFile name="infofile" fileName="../logs/info.log" filePattern="../logs/info.log.%d{yyyy-MM-dd}">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} %p $r [%t] %C.%M(%L) | %m%n</Pattern>
</PatternLayout>
<!--过滤日志级别,确保该文件中只能保存INFO和WARN级别的日志-->
<Filters>
<ThresholdFilter level="INFO"/>
<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<!--日志文件产生的策略,每隔一定的时间产生一个新的日志文件-->
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>