在运行时期间扩展Log4JLogger并调用子类

时间:2012-04-04 12:56:42

标签: java inheritance log4j

我目前在Log4J中使用SocketAppender并且遇到了将数据传递到远程主机的一些问题,特别是在丢失LocationInfo(类名,行号等)时。我所做的是以下内容:

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);

1 个答案:

答案 0 :(得分:1)

您不必扩展Logger,而是实现自己的Appender或扩展您需要的基本Log4J Appender。 例如,您可以扩展AppenderSkeleton

我无法想象为什么你需要它。另一种可能是使用Log4J Mapped Diagnostic Context