1
我不确定这是否可能,但我希望能够使用log4j注销数据。但是,而不是log.info()语句的实际位置,我宁愿将调用函数的方法名称,行等由log4j显示在普通字段中,而不是日志数据。如何覆盖Log4J行号
是否有可能覆盖日志事件的数据字段?
public class Foo
{
public static void info(String msg)
{
Logger aLogger = Logger.getRootLogger();
// -- Set the calling function location info here
aLogger.info(msg);
}
}
public class Bar
{
public void test()
{
Foo.info("x"); // -- Want this line, file, class, method logged
}
}
你有没有考虑过使用[diagnostic context](http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/MDC.html)?不完全是你要求的,但可以解决你的目的。 – durron597
我没有,但我会研究它。 – zappullae
如果你想'info()'方法来做到这一点。你可以覆盖它。因为这通常不是'info()'的作用 –