log4j2 logger_简单一致的Log4j2 Logger命名

本文探讨了Log4j2如何通过默认使用当前类名作为Logger名称,实现简单一致的日志记录器命名。通过无参数的`LogManager.getLogger()`,可以轻松获取与类名匹配的Logger,这种方法既方便又可读,适用于追求一致性的Log4j2应用。
摘要由CSDN通过智能技术生成

log4j2 logger

在“ 带有Java 7方法句柄的可移植记录器名称”一文中 ,我写了关于使用Java 7方法句柄来命名类的记录器的文章。 我在那篇文章中说过,这种方法的优点包括记录器命名的一致性,并避免了意外的代码复制和粘贴,这可能导致不同的类名被用作记录器名称。 在这篇文章中,我看看如何Log4j的2提供了一种方法实现这些同样的好处。

Log4j 2可以识别基于类名的记录器命名方法。 Log4j 2手册中Log4j 2 API ”页面的“ Logger Names ”部分指出:“在大多数情况下,应用程序通过将当前类的名称传递给LogManager.getLogger来命名其记录器。 因为这种用法非常普遍,所以Log4j 2提供了它作为记录器名称参数被省略或为空时的默认值。”

以下非常简单的Calculator类演示了此过程,即使用无参数LogManager创建一个LoggergetLogger()调用。 因为没有参数传递给getLogger()方法,所以记录器将以创建Logger的类命名。 方法LogManager.getLogger()的Javadoc注释确认了此行为:“返回带有调用类名称的Logger。”

计算器.java

package dustin.examples.log4j;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.Arrays;


/**
 * Simple calculator class that is intended more for demonstration
 * of Log4j2 than for calculating anything.
 */
public class Calculator
{
   private static final Logger logger = LogManager.getLogger();

   public String getLoggerName()
   {
      return logger.getName();
   }

   /**
    * Add the provided operands together and provide their sum.
    *
    * @param operands Operands to be added together.
    * @return Sum of the provided operands.
    */
   public long add(final long ... operands)
   {
      long sum = 0;
      for (final long operand : operands)
      {
         sum += operand;
      }
      logger.debug("The sum of " + Arrays.toString(operands) + " is " + sum);
      return sum;
   }
}

如上所示,通过实现Calculator类,可以通过调用Logger.getName()来获得该类的记录器名称,如Calculator方法getLoggerName()所示,该名称是“ dustin.examples.log4j.Calculator”。 尽管此处未显示,但使用无参数LogManager.getFormatterLogger()检索的Logger也将使用“调用类的完全限定名称作为Logger名称。”

结论

假设所选记录器的命名方案是使用完全合格的程序包和类名,则本文中讨论和演示的Log4j 2方法易于使用,并且易于使用一致且正确的记录器名称。 这种方法比命名日志记录方法处理方法更简短,甚至更具可读性,但是该方法特定于Log4j 2,而该方法处理的方法可以与多个日志记录框架和库一起使用。

翻译自: https://www.javacodegeeks.com/2015/10/easy-and-consistent-log4j2-logger-naming.html

log4j2 logger

mysql 是一个流行的关系型数据库管理系统,而 log4j 则是一个 Java 应用程序中常用的日志记录工具。log4jlogger_org.apache.log4j.Logger 是一个 log4j 框架中的 Logger 类,用于在应用程序中记录日志。 Logger 实例被用于记录应用程序中的各种事件。它们可以配置为将这些事件记录到不同的目的地,如控制台、文件或数据库中。Logger 可以分级别记录日志,包括 DEBUG、INFO、WARN、ERROR 和 FATAL 五个级别,可以根据需要进行配置。 在使用 log4jlogger_org.apache.log4j.Logger 记录日志时,需要首先创建一个 Logger 实例。这可以通过调用 LogManager 类的 getLogger() 方法来实现,例如: ``` import org.apache.log4j.Logger; public class MyClass { private static final Logger logger = LogManager.getLogger(MyClass.class); public void doSomething() { logger.info("Doing something..."); } } ``` 在这个例子中,我们使用 getLogger() 方法创建了一个名为 "MyClass" 的 Logger 实例。然后,在 doSomething() 方法中,我们使用 logger 实例记录了一条 INFO 级别的日志消息。 需要注意的是,Logger 实例是按照包名来命名的。因此,在上面的例子中,Logger 实例的完整名称是 "com.example.MyClass"。此外,Logger 实例通常被声明为 private static final 类型,以便在整个类中都可用。 总之,log4jlogger_org.apache.log4j.Loggerlog4j 框架中的一个重要组件,用于在应用程序中记录日志。通过使用 Logger 实例,可以轻松地记录各种事件,并将它们记录到不同的目的地。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值