我目前正在 Log4J 中使用 SocketAppender,并且在将数据传递到远程主机时遇到了一些问题,特别是丢失 LocationInfo
(类名、行号) , ETC)。我所做的如下:
import org.apache.commons.logging.impl.Log4JLogger;
public class MyLogger extends Log4JLogger
{
...
public void debug(Object message)
{
String extra = "Extra!";
super.debug(message + extra);
}
...
}
在运行时,如何更改以下代码以获取 MyLogger
而不是 Log4JLogger
?
private static Log logger = LogFactory.getLog(Test.class);
最佳答案
您不必扩展 Logger,而是实现您自己的 Appender 或扩展您需要的基本 Log4J Appender。 例如,您可以扩展 AppenderSkeleton .
我无法想象你为什么需要它。另一种可能性是使用 Log4J Mapped Diagnostic Context .
关于java - 扩展 Log4JLogger 并在运行时调用子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10011579/