0

我正在使用相同的代码构建 Java Desktop 和 Java Applet。Log4j 正在使用中,因此桌面版本(原始版本)中的几乎每个类都有类似的行

private static final Logger LOG = LoggerFactory.getLogger(EachClassName.class);

因为 Applet 不应该执行任何 io 操作,所以我不得不排除这个配置代码:

InputStream is = Log4jConfigurator.class.getClassLoader().getResourceAsStream(path);
properties.load(is);
is.close();
PropertyConfigurator.configure(properties);

但现在我收到警告,因为getLogger它仍然存在

log4j:WARN No appenders could be found for logger (org.game.client.Client).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

避免此警告并仅在桌面版本中使用记录器的最优雅的解决方案是什么?

4

1 回答 1

1

在您的“Applet App”中尝试以编程方式配置 log4j:

  1. 关闭日志记录

    LogManager.getRootLogger().setLevel(Level.OFF);

  2. 添加 NullAppender(如果设置 Level.OFF 还不够)

    LogManager.getRootLogger().addAppender(new NullAppender())

于 2013-01-07T12:21:13.743 回答