[英]How to print customized prefix in log4j
默認情況下,log4j將打印類名稱作為log的前綴。 現在,我的情況是在一個JVM中有多個類A的實例,並且該類中有一個日志。 我想要以下日志,以便讓我知道哪個實例正在打印此行日志? 我該如何實現?
2014-09-09 13:07:08,512 INFO com.myexample.A(id1)
2014-09-09 13:07:08,514 INFO com.myexample.A(id2)
我認為您無法通過log4j.properties文件中的設置來做到這一點。 在此處查看可能的變體。
但是您可以解決如下問題:
class A {
Logger LOGGER;
A(String id) {
LOGGER = Logger.getLogger(getClass() + "(" + id + ")");
}
void myMethod() {
LOGGER.info("Hello!");
}
}
最簡單的方法是將所需的ID添加到您的日志消息中:
if (logger.isDebugEnabled()) {
int id = this.hashCode(); // Invoke ID getter method
logger.debug( String.format("[ %d ] My log message with ID", id) );
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.