Log4j:专门为我们的javat程序记录日志使用的;就是jar包+配置文件
那么没有使用log4j的时候,如何打印信息呢?
System.out.println(“====”);
log4j2官网:http://logging.apache.org/log4j/2.x/
文件目录介绍:
项目中部署:
配置文件log4j2.xml
<?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>
<!-- 系统打印日志 ,按照天记录日志;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">
<!-- 引入了一个Console和System -->
<appender-ref ref="Console" />
<appender-ref ref="System" />
</root>
<!-- 外部日志,只记录到文件中,不记录到控制台中 -->
<logger name="SystemLog" level="info" additivity="false">
<appender-ref ref="System" />
</logger>
</loggers>
</configuration>
日志级别:
ALL level: 是最低等级的,用于打开所有日志记录.
DEBUG Level: 指出细粒度信息事件对调试应用程序是非常有帮助的,就是输出debug的信息.
INFO level: 表明消息在粗粒度级别上突出强调应用程序的运行过程,就是输出提示信息.
WARN level: 表明会出现潜在错误的情形,就是显示警告信息.
ERROR level: 指出虽然发生错误事件,但仍然不影响系统的继续运行.就是显示错误信息.
FATAL level: 指出每个严重的错误事件将会导致应用程序的退出.
OFF level: 是最高等级的,用于关闭所有日志记录.
- 如果将log level设置在某一个级别上 那么比此级别优先级高的log都能打印出来
- 例如 如果设置优先级为WARN 那么OFF FATAL ERROR WARN 4个级别的log能正常输出,而INFO DEBUG TRACE ALL级别的log则会被忽略