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

相关推荐
Mr_sun.10 分钟前
Day09——入退管理-入住-2
android·java·开发语言
likangbinlxa17 分钟前
【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用
数据库·sql
MAGICIAN...21 分钟前
【java-软件设计原则】
java·开发语言
JH307328 分钟前
为什么switch不支持long
java
盐真卿1 小时前
python第八部分:高级特性(二)
java·开发语言
上海合宙LuatOS1 小时前
LuatOS核心库API——【audio 】
java·网络·单片机·嵌入式硬件·物联网·音视频·硬件工程
汤姆yu1 小时前
基于springboot的尿毒症健康管理系统
java·spring boot·后端
TT哇1 小时前
【实习】银行经理端线下领取扫码功能实现方案
java
野犬寒鸦1 小时前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
黎雁·泠崖1 小时前
【魔法森林冒险】2/14 抽象层设计:Figure/Person类(所有角色的基石)
java·开发语言