java - log4j 和 weblogic : duplicate log messages

标签 java logging log4j weblogic

我使用 log4j 登录我的项目。这是它的示例设置:

public class MyClass {
  private final Logger logger = Logger.getLogger(MyClass.class);

  public MyClass() {
    BasicConfigurator.configure();
    Logger.getLogger(MyClass.class).setLevel(Level.INFO);
  }

  ...

}

问题是在每次调用下一个记录器时,它都会复制日志消息(我的意思是第一次调用时只有 1 条消息,第二次调用时有 2 条相同的消息,然后有 3 条,依此类推)。似乎每次都会创建新记录器的实例并与所有旧实例一起使用。
如何避免这个问题? 谢谢。

UPP。试图让它成为静态的,但无论如何它都不起作用。我仍然收到多条日志消息。有任何想法吗?可能是一些 Weblogic 特定的东西?

最佳答案

使记录器静态

private static final Logger logger = Logger.getLogger(MyClass.class);

这里的关键是为每个类而不是每个实例创建一个Logger

关于java - log4j 和 weblogic : duplicate log messages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7094875/

相关文章:

java - HTTP 状态 404 – 未找到 : for controller - no view resolvers found in Idea

排序文件中的 Java 字符串匹配和相似数据分组

c++ - 在创建应用程序时记录应用程序的事件并使用 Visual Studio C++ 进行测试

grails - 如何在grails应用程序中使用log4j?

java - 直接调用 String 方法是否也会将该 String 存储在 String 池中?

java - 如何在 Java 中从没有所有值的枚举创建对象

java - 如何让 GELFJ appender 在 log4j 中工作?

php - 无法在php中访问访问者的ip地址

scala - 运行 sbt 测试时忽略 log4j.properties

java - log4j 仅使用 log4j.xml 创建文件名中带有时间戳的日志文件