發表於 程式分享

log4j 2 設定依類別名稱存檔

1.程式內寫法依

(1) import log4j class
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.ThreadContext;

(2) 初始化logger
public class MyClass {
protected Logger logger = LogManager.getLogger(this.getClass().getName());

protected MyClass() {
ThreadContext.put(“className", this.getClass().getName());
}
}
(3) 使用方法同一般寫法logger.info(…)、logger.debug(…)…等

2.Loggers (設定appender-ref)
=> Appenders/Async(設定appender-ref)
=> Appenders/Routing/Routes的pattern使用$${ctx:className}以對應到程式中ThreadContext.put(“className", this.getClass().getName());
=> Appenders/Routing/Routes/Route/RollingFile的name、fileName、filePattern內的設定均使用${ctx:className}代表log的名稱

1[1].gif