[英]inheriting log4j Logger
我打算用log4j one代替旧的记录器。 无需直接使用Logger,而是需要创建继承自Logger的新类LocalLogger。 这样做的原因-我需要在旧记录器中可用的新记录方法名称。
我有log4j记录器:
protected final Logger logger = Logger.getLogger(getClass());
如何制作可以像Logger一样制作LocalLogger的功能?
如何将C类传递给超级LocalLogger?
LocalLogger的草案:
public class LocalLogger extends Logger{
protected LocalLogger(String name) {
super(name);
}
public LocalLogger getLocalLogger(Class c)
{
return new LocalLoger(???)
}
}
我建议您在这种情况下不要扩展Logger
。 而是使用委托模式 。
使用所需的方法创建一个全新的类,但将日志记录调用委托给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.
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.