java - 扩展 Log4JLogger 并在运行时调用子类

标签 java inheritance log4j

我目前正在 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/

相关文章:

java - Android 中 Paint.StrokeWidth = 1 的 drawLine 问题

c# - AutoMapper——继承映射不​​工作,相同的源,多个目的地

Java解释

java - 使用 Equinox Servle Bridge 将 OSGi 应用程序部署到 Tomcat 时如何配置 Log4J?

java - log4j: 错误 setFile(null,false) 调用失败

java - "Insert common prefixes automatically"在 Eclipse 中做什么?

java - 三点高斯积分程序

java - 输出与线程优先级程序不一致

java - 单一责任原则和组织 DI 接口(interface)的正确方法

java - java中log4j格式的打印