gpt4 book ai didi

java - 继承log4j记录器

转载 作者:行者123 更新时间:2023-12-01 14:15:25 24 4
gpt4 key购买 nike

我打算用 log4j 替换旧的记录器。我需要创建继承 Logger 的新类 LocalLogger,而不是直接使用 Logger。这样做的原因 - 我需要旧记录器中可用的新记录方法名称。

我有 log4j 记录器:

protected final Logger logger = Logger.getLogger(getClass());

如何制作一个可以像 Logger 一样制作 LocalLogger 的函数?

如何将类c传递给 super LocalLogger?

LocalLogger 的草稿:

public class LocalLogger extends Logger{

protected LocalLogger(String name) {
super(name);
}

public LocalLogger getLocalLogger(Class c)
{
return new LocalLoger(???)
}

}

最佳答案

我建议您不要在这种情况下扩展Logger。相反,请使用 delegation pattern .

使用您想要的方法创建一个全新的类,但将日志记录调用委托(delegate)给 Logger 的内部实例:

public class LocalLogger {

private final Logger logger;

public LocalLogger(String name) {
logger = Logger.getLogger(name);
}

public LocalLogger(@SuppressWarnings("rawtypes") Class clazz) {
logger = Logger.getLogger(clazz);
}

public void antiqueLoggingMethod(String msg) {
logger.info(msg);
}

// etc.
}

关于java - 继承log4j记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18148468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com