java - Logback獲取方法名稱
阿新 • • 發佈:2018-09-09
方法 main pen relative 日誌 san height ng- ive
java - Logback獲取方法名稱
摘自: https://blog.csdn.net/qq853632587/article/details/78222780
我們目前正在從 Log4J 遷移到 Logback,但是在獲取觸發日誌的"原"方法名稱時遇到了問題。
我叫它"原",因為我們有一個集中的記錄器類( 隱藏和操作某些日誌) 和日誌中顯示的方法名稱。
在 Log4J 中,我們能夠正確獲取"原"方法名。
Logback是否能夠獲得它?
記錄器參數:
Log4J
<param name="ConversionPattern" value="%d{dd-MM-yyyy HH:mm:ss,SSS} %5p [%F] - %M() - %m%n" />
Logback
<pattern>%d{"dd-MM-yyyy HH:mm:ss,SSS"} %-5level [%logger - %M] - %msg%n</pattern>
結果:( 方法名稱- 類名)
Log4J
doLogTester1 - a.Tester1 doLogTester2 - b.Tester2 doLogTester1 - a.Tester1 doLogTester2 - b.Tester2
Logback
processLog - a.Tester1 processLog - b.Tester2 processLog - a.Tester1 processLog - b.Tester2
編輯 - 完整示例
Main.java
public class Main { private static final LoggerCommon logger = new LoggerCommon(Main.class); public static void main(String[] args) { logger.doLog("I‘m on the Main class in the main method"); } }
LoggerCommon
log4j
import org.apache.log4j.Level ; import org.apache.log4j.Logger; public class LoggerCommon { private static Logger logger; public LoggerCommon(Class<?> c) { logger = Logger.getLogger(c); } public void doLog(String message) { logger.log(LoggerCommon.class.getName(), Level.INFO, message, null); } }
logback
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class LoggerCommon { private Logger logger; public LoggerCommon(Class<?> c) { logger = LoggerFactory.getLogger(c); } public void doLog(String message) { logger.info(message); } }
config配置
log4j
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="CA" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%M - %F - %m%n"/> </layout> </appender> <root> <level value="debug"/> <appender-ref ref="CA"/> </root> </log4j:configuration>
logback
<configuration> <appender name="CA" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%M - %logger - %msg %n</pattern> </encoder> </appender> <root level="TRACE"> <appender-ref ref="CA"/> </root> </configuration>
java - Logback獲取方法名稱