【发布时间】:2015-09-14 06:38:00
【问题描述】:
大家好,这里使用 Log4j 时遇到了问题。
我的代码是
public class MyLogger{
private static Logger mLogger = LoggerFactory.getLogger(MyLogger.class);
public static void configure() {
LogConfigurator logConfigurator = new LogConfigurator();
logConfigurator.setFileName(getLogPath());
logConfigurator.setRootLevel(Level.DEBUG);
logConfigurator.setLevel("com.**", Level.ALL);
logConfigurator.setMaxFileSize(1024 * 1024 * 5);
logConfigurator.configure();
}
public static void info(String msg) {
mLogger.info(msg);
}
public static void warn(String msg) {
mLogger.warn(msg);
}
public static void debug(String msg) {
mLogger.debug(msg);
}
public static void error(String msg) {
mLogger.error(msg);
}
此代码有效,但我注意到它被记录了多次。我尝试在这里阅读一些教程,他们说我需要添加 additivity="false" 但该功能在 Jar 文件中不可用。
【问题讨论】:
-
Logger 类具有派生自
Category的setAdditivity。你试过了吗? -
@Fildor 你所说的类别是什么意思?到目前为止,我所做的是添加 jar 文件并创建该类。我需要创建一个类别吗?
-
不,
Category是Logger类的已弃用前身。它继承setAdditivity方法。因此,如果您以编程方式配置记录器,您应该能够使用mLogger.setAdditivity(false)设置此属性。不过,不确定是否必须在第一次登录之前完成。