是否可以在java(log4j)中记录方法调用?

时间:2010-12-07 08:27:52

标签: java logging log4j

是否可以在log4j Java中记录任何方法调用?

谢谢!

4 个答案:

答案 0 :(得分:6)

不,不是没有编辑调用网站或方法本身。我认为你所追求的是面向方面编程的东西。例如,请查看AspectJ

答案 1 :(得分:0)

您可以在Log4j conversion pattern中使用%I打印出该方法的名称。 但是会被警告“生成来电者位置信息非常慢,应该避免,除非执行速度不是问题。”

答案 2 :(得分:0)

您可以使用AOP和Java注释来完成。我建议使用@Loggable注释和jcabi-aspects中的AspectJ方面(我是开发人员):

@Loggable(Loggable.DEBUG)
public String load(URL url) {
  return url.openConnection().getContent();
}

在SLF4J日志输出中,您将看到方法执行时间,其参数及其名称。

答案 3 :(得分:0)

如何使用(%C.%M.%L)如下所示在log4j.xml中

<layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern"
        value="%d - MyApplication - %-4p - (%C.%M.%L) -- %m%n" />
</layout>