log4j2 概述、配置详情、日志八种输出级别讲解

it2023-08-13  72

一、概述  

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> 三、日志级别  

Log4j的级别类org.apache.log4j.Level里面定义了日志级别,日志输出优先级由低到高分别为以下8种,如下图:

详解:

all level: 所有:是最低等级的,用于打开所有日志记录.trace: 跟踪:指明程序运行轨迹,比DEBUG级别的粒度更细。debug Level: 调试:指明细致的事件信息,对调试应用最有用。info level: 信息:指明描述信息,从粗粒度上描述了应用运行过程。warn level: 警告:指明可能潜在的危险状况。error level: 错误:指明错误事件,但应用可能还能继续运行。fatal level: 致命:指明非常严重的可能会导致应用终止执行错误事件。off level: 关闭:是最高等级的,用于关闭所有日志记录.

所以,日志优先级别标准顺序为:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 如果将log level设置在某一个级别上 那么比此级别优先级高的log都能打印出来例如 如果设置优先级为 warn 那么 warn、error、fatal、off 4个级别的log能正常输出,而info 、debug 、trace、all 级别的log则会被忽略
最新回复(0)