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