第三百零五节 Log4j教程 - Log4j日志记录方法

Log4j教程 - Log4j日志记录方法

Logger类具有处理日志记录活动的方法。我们可以使用两个静态方法创建Logger类的实例:

复制代码
public static Logger getRootLogger();
public static Logger getLogger(String name);

第一个方法返回没有名称的根日志记录器。第二个方法按名称返回记录器。记录器的名称可以是任何字符串。我们通常使用类或包名称如下:

复制代码
static Logger log = Logger.getLogger(log4jExample.class.getName());

日志记录方法

我们可以使用Logger类中的以下方法来记录消息。

方法 描述
public void debug(Object message) 打印Level.DEBUG级别的消息。
public void error(Object message) 打印Level.ERROR级别的消息。
public void fatal(Object message) 打印具有Level.FATAL级别的消息。
public void info(Object message) 打印Level.INFO级别的消息。
public void warn(Object message) 打印Level.WARN级别的消息。
public void trace(Object message) 打印Level.TRACE级别的消息

所有级别都在org.apache.log4j.Level类中定义。

复制代码
import org.apache.log4j.Logger;

public class Main {
   private static org.apache.log4j.Logger log = Logger.getLogger(Main.class);
   public static void main(String[] args) {
      log.trace("Trace Message!");
      log.debug("Debug Message!");
      log.info("Info Message!");
      log.warn("Warn Message!");
      log.error("Error Message!");
      log.fatal("Fatal Message!");
   }
}

Log4j教程 - Log4j HelloWorld

我们使用以下配置文件来控制log4j。

根记录器的级别定义为DEBUG,并将名为FILE的追加器附加到它。

追加器FILE定义为org.apache.log4j.FileAppender,并写入位于日志目录中的名为"log.out"的文件。

定义的布局模式为%m%n,它打印以换行符结尾的日志消息。

复制代码
# Define the root logger with appender file
log = c:/log4j
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

log4j在Java代码中

以下Java类展示了如何使用Log4J日志库。

复制代码
import org.apache.log4j.Logger;

import java.io.*;
import java.sql.SQLException;
import java.util.*;

public class Main {
  /* Get actual class name to be printed on */
  static Logger log = Logger.getLogger(
                      log4jExample.class.getName());

  public static void main(String[] args)
                throws IOException,SQLException{
   
     log.debug("Hello this is an debug message");
     log.info("Hello this is an info message");
  }
}

所有库都应该在CLASSPATH中可用,log4j.properties文件应该在PATH中可用。

相关推荐
czlczl200209251 小时前
告别 try-catch 地狱:Spring Boot 全局异常处理 (GlobalExceptionHandler) 最佳实践
java·spring boot·后端
Goldn.7 小时前
Java核心技术栈全景解析:从Web开发到AI融合
java· spring boot· 微服务· ai· jvm· maven· hibernate
饕餮争锋7 小时前
SQL条件中WHERE 1=1 的功能
数据库·sql
李慕婉学姐8 小时前
【开题答辩过程】以《基于Android的出租车运行监测系统设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·后端·vue
m0_740043738 小时前
SpringBoot05-配置文件-热加载/日志框架slf4j/接口文档工具Swagger/Knife4j
java·spring boot·后端·log4j
编织幻境的妖8 小时前
SQL查询连续登录用户方法详解
java·数据库·sql
未若君雅裁9 小时前
JVM面试篇总结
java·jvm·面试
kk哥88999 小时前
C++ 对象 核心介绍
java·jvm·c++
招风的黑耳9 小时前
我用SpringBoot撸了一个智慧水务监控平台
java·spring boot·后端
xunyan62349 小时前
面向对象(下)-接口的理解
java·开发语言