Log4j是Apache下的一款开源的日志框架,通过在项目中使用 Log4j,我们可以控制日志信息输出到控制台、文件、甚至是数据库中。我们可以控制每一条日志的输出格式,通过定义日志的输出级别,可以更灵活的控制日志的输出过程。方便项目的调试。
官方网站: http://logging.apache.org/log4j/1.2/
Log4j入门
- 建立maven工程
- 添加依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
入门Java代码
@Test
public void testQuick() throws Exception{
//初始化配置信息,在入门案例中暂不适用配置文件
BasicConfigurator.configure();
//1.获取日志记录器对象
Logger logger = Logger.getLogger(Log4j_Test.class);
//2.日志输出
logger.info( "hello log4j" );
//日志级别
logger.fatal( "fatal" ); //严重错误,一般会造成系统崩溃并终止运行
logger.error( "error" ); //错误信息,不会影响系统运行
logger.warn( "warn" ); //警告信息,可能会发生问题
logger.info( "info" ); //运行信息,数据连接,网络连接,IO操作等
logger.debug( "debug" ); //调试信息,一般在开发中使用,记录程序变量参数
logger.trace( "trace" ); //追终信息,记录程序所有的流程信息
}
日志的级别
每个Logger都被了一个日志级别(log level),用来控制日志信息的输出。日志级别从高到低分 为:
- fatal 指出每个严重的错误事件将会导致应用程序的退出。
- error 指出虽然发生错误事件,但仍然不影响系统的继续运行。
- warn 表明会出现潜在的错误情形。
- info 一般和在粗粒度级别上,强调应用程序的运行全程。
- debug 一般用于细粒度级别上,对调试应用程序非常有帮助。
- trace 是程序追踪,可以用于输出程序运行中的变量,显示执行的流程。
还有两个特殊的级别:
- OFF,可用来关闭日志记录。
- ALL,启用所有消息的日志记录
注:一般只使用4个级别,优先级从高到低为 ERROR > WARN > INFO > DEBUG
内置日志记录
//开启log4j 内置日志记录
LogLog.setInternalDebugging( true );