Log4j显示包名称

现在我的ConversionPattern我有:

log4j.appender.A1.layout.ConversionPattern=%d{yyyy MMM dd HH:mm:ss,SSS} %5p [%t] (%F:%L) - %m%n 

我想要做的还包括类的完整包名(%F:%L),但我在文档中找不到任何配置 。 我知道这会慢一点,但它只适用于调试,而不是系统何时投入生产。

也许我只是误解了你,但是%C会输出你的课程。

来自您引用的文档:

%C

用于输出发出日志记录请求的调用者的完全限定类名。 此转换说明符可以后跟精度说明符,后者是括号中的十进制常量。

如果给出了精度说明符,则只打印类名的最右边组件的相应数量。 默认情况下,类名以完全限定的forms输出。

例如,对于类名“org.apache.xyz.SomeClass”,模式%C {1}将输出“SomeClass”。

警告生成调用者类信息很慢。 因此,除非执行速度不是问题,否则应避免使用。

更新:在许多情况下,您也可以使用%c,如果您的类别是您的类名,它也将打印出包含完整的类。 例如,在初始化日志时你做这样的事情:

 private static final Log LOG = LogFactory.getLog(MyClazz.class); 

使用%c并不慢。

使用C{1}很慢。 请看下面的详细信息:

根据以下链接 :

用于输出发出日志记录请求的调用者的完全限定类名。 此转换说明符可以后跟精度说明符,后者是括号中的十进制常量。 如果给出了精度说明符,则只打印类名的最右边组件的相应数量。 默认情况下,类名以完全限定的forms输出。

例如,对于类名org.apache.xyz.SomeClass ,模式%C{1}将输出SomeClass

警告生成调用者类信息很慢。 因此,除非执行速度不是问题,否则应避免使用。