第三百零五节 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中可用。

相关推荐
工一木子7 分钟前
【Leecode】Leecode刷题之路第42天之接雨水
java·算法·leetcode
dal118网工任子仪12 分钟前
SQL报错注入检测方法与攻击方法
笔记·sql·学习·计算机网络
Yue1one14 分钟前
I - O (输入-输出) 字节流 字符流 缓冲流
java
w_t_y_y16 分钟前
SQL拦截(二)InnerInterceptor
java
zybsjn17 分钟前
如何产看SQL 查询的执行时间
数据库·sql
安迁岚17 分钟前
【SQL Server】华中农业大学空间数据库实验报告 实验二 数据库表
数据库·sql·mysql·oracle·实验报告
songqq2718 分钟前
sql中判断一个字段是否包含一个数据的方法有哪些?
数据库·hive·sql
zmd-zk19 分钟前
sql在hive和阿里云maxComputer的区别
数据库·hive·sql
Aliano21719 分钟前
Java的jackson库
java·开发语言
昙鱼42 分钟前
Maven的了解与使用
java·maven