spring5 配置log系统MAVEN
一、僅LOG4J2,只需要加上這個包即可。
? ? 1.在POM.XML中引入如下包。
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.12.1</version> </dependency> <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.12.1</version> </dependency>2.在resource目錄下新建log4j2.xml,在log4j初始化context時會自動尋找resource下的log4j2.xml文件進(jìn)行配置,其它配置無效。(log4j2.properties,lo4j2.json,log4j2.yaml這幾個都可以)?
<?xml version="1.0" encoding="UTF-8"?> <!--日志級別以及優(yōu)先級排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --> <!--自定義命名格式:%d:發(fā)生時間,%d{yyyy-MM-dd HH:mm:ss,SSS},輸出類似:2020-02-20 22:10:28,921%F:輸出所在的類文件名%t:線程名稱%p:日志級別%c:日志消息所在類名%m:消息內(nèi)容%M:輸出所在函數(shù)名%x: 輸出和當(dāng)前線程相關(guān)聯(lián)的NDC(嵌套診斷環(huán)境),尤其用到像java servlets這樣的多客戶多線程的應(yīng)用中。%l:執(zhí)行的函數(shù)名(類名稱:行號)com.core.LogHelper.aroundService(LogHelper.java:32)%n:換行%i:從1開始自增數(shù)字%-5level:輸出日志級別,-5表示左對齊并且固定輸出5個字符,如果不足在右邊補0“${sys:user.home}”是HOME目錄 如:C:\Users\heave, 此處指定任意目錄如:D:\logs --> <!--設(shè)置log4j2自身log級別為warn,每間隔30秒數(shù)自動檢測配置是否發(fā)生修改,并重新配置--> <configuration status="DEBUG" monitorInterval="30"><Properties><!-- 日志顯示模板,顯示內(nèi)容的格式如下 --><!-- [21:55:33:047] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - Initializing Spring embedded WebApplicationContext --><Property name="log_pattern" value="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/><!-- 保存日志文件目錄 --><!--<Property name="file_path" value="${sys:user.home}/logs"/>--><Property name="file_path" value="./logs"/><!-- 日志文件的最大容量,超過該值就進(jìn)行備份 --><Property name="file_max_size" value="30MB"/><!-- 備份的文件夾名稱 如下為:2020-02 --><Property name="backup_folder" value="$${date:yyyy-MM}"/><!-- 備份文件的后綴,日志文件超過file_max_size會備份到filePattern指定的目錄下 --><Property name="backup_file_suffix" value="-%d{yyyy-MM-dd}-%i.log"/></Properties><!--定義appender--><appenders><!--控制臺的輸出配置--><console name="Console" target="SYSTEM_OUT"><!-- 設(shè)置控制臺只輸出info及以上級別的信息(onMatch),其他的直接拒絕(onMismatch) --><ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/><!--輸出日志的格式--><PatternLayout pattern="${log_pattern}"/></console><!-- 所有的日志信息會打印到此文件中,append=false每次啟動程序會自動清空 --><!--<File name="all" fileName="${file_path}/all.log" append="true">--><!--<PatternLayout pattern="${log_pattern}"/>--><!--</File>--><!--該RollingFile存儲INFO級別的日志,默認(rèn)存儲到 fileName 文件中超過SizeBasedTriggeringPolicy的設(shè)定值,則存儲到 filePattern 文件中--><RollingFile name="RollingFileDebug" fileName="${file_path}/debug.log"filePattern="${file_path}/${backup_folder}/debug${backup_file_suffix}"><!--控制臺只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch)--><ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/><!-- 寫入日志文件的模板 --><PatternLayout pattern="${log_pattern}"/><Policies><TimeBasedTriggeringPolicy/><SizeBasedTriggeringPolicy size="${file_max_size}"/></Policies><!-- DefaultRolloverStrategy屬性如不設(shè)置,則默認(rèn)為最多同一文件夾下7個文件,超過該數(shù)量,會滾動刪除前面的記錄 --><DefaultRolloverStrategy max="20"/></RollingFile><RollingFile name="RollingFileInfo" fileName="${file_path}/info.log"filePattern="${file_path}/${backup_folder}/info${backup_file_suffix}"><!--控制臺只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch)--><ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/><!-- 寫入日志文件的模板 --><PatternLayout pattern="${log_pattern}"/><Policies><TimeBasedTriggeringPolicy/><SizeBasedTriggeringPolicy size="${file_max_size}"/></Policies><!-- DefaultRolloverStrategy屬性如不設(shè)置,則默認(rèn)為最多同一文件夾下7個文件,超過該數(shù)量,會滾動刪除前面的記錄 --><DefaultRolloverStrategy max="20"/></RollingFile><RollingFile name="RollingFileWarn" fileName="${file_path}/warn.log"filePattern="${file_path}/${backup_folder}/warn${backup_file_suffix}"><ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="${log_pattern}"/><Policies><TimeBasedTriggeringPolicy/><SizeBasedTriggeringPolicy size="${file_max_size}"/></Policies></RollingFile><RollingFile name="RollingFileError" fileName="${file_path}/error.log" filePattern="${file_path}/${backup_folder}/error${backup_file_suffix}"><ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="${log_pattern}"/><Policies><TimeBasedTriggeringPolicy/><SizeBasedTriggeringPolicy size="${file_max_size}"/></Policies></RollingFile></appenders><!-- 只有定義了logger并使用appender-ref,appender才會生效 --><loggers><!--過濾掉spring和hibernate的一些無用的debug信息--><logger name="org.springframework" level="TRACE"/><logger name="org.mybatis" level="INFO"><!-- 添加如下設(shè)置,控制臺會再打印一次 --><AppenderRef ref="Console"/></logger><root level="DEBUG"><appender-ref ref="Console"/><appender-ref ref="RollingFileDebug"/><appender-ref ref="RollingFileInfo"/><appender-ref ref="RollingFileWarn"/><appender-ref ref="RollingFileError"/></root></loggers></configuration>3.1.在log4j2-core中會強制寫死在resource目錄下尋找?guī)og4j2的配置。由spring-jcl包中的apache通用日志庫調(diào)用到LogFactory.getLog(Class<?> clazz)
Log4jAdapter.createLog(name),
org.apache.commons.logging.LogAdapter public static Log createLog(String name) {switch (logApi) {case LOG4J:return Log4jAdapter.createLog(name);case SLF4J_LAL:return Slf4jAdapter.createLocationAwareLog(name);case SLF4J:return Slf4jAdapter.createLog(name);default:// Defensively use lazy-initializing adapter class here as well since the// java.logging module is not present by default on JDK 9. We are requiring// its presence if neither Log4j nor SLF4J is available; however, in the// case of Log4j or SLF4J, we are trying to prevent early initialization// of the JavaUtilLog adapter - e.g. by a JVM in debug mode - when eagerly// trying to parse the bytecode for all the cases of this switch clause.return JavaUtilAdapter.createLog(name);}}最后調(diào)用到Log4jAdapter適配器的創(chuàng)建LOG。
private static class Log4jAdapter {public static Log createLog(String name) {return new Log4jLog(name);}}上述中間會調(diào)用log4j2-api中的logcontext 進(jìn)行初始化。
private static final LoggerContext loggerContext =LogManager.getContext(Log4jLog.class.getClassLoader(), false);private final ExtendedLogger logger;public Log4jLog(String name) {LoggerContext context = loggerContext;if (context == null) {// Circular call in early-init scenario -> static field not initialized yetcontext = LogManager.getContext(Log4jLog.class.getClassLoader(), false);}this.logger = context.getLogger(name);}最終會調(diào)用到log4j2-core中的org.apache.logging.log4j.core.LoggerContext.reconfigure接口讀取log4j2配置進(jìn)行初始化。
log4j2內(nèi)部的日志輸出器為org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely,可以在這里面進(jìn)行斷點,查看日志加載流程。以下是加載流程。
2021-07-13 16:44:15,619 RMI TCP Connection(3)-127.0.0.1 DEBUG Apache Log4j Core 2.12.1 initializing configuration XmlConfiguration[location=E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml] 2021-07-13 16:44:15,627 RMI TCP Connection(3)-127.0.0.1 DEBUG Installed 1 script engine 2021-07-13 16:44:15,946 RMI TCP Connection(3)-127.0.0.1 DEBUG Oracle Nashorn version: 1.8.0_161, language: ECMAScript, threading: Not Thread Safe, compile: true, names: [nashorn, Nashorn, js, JS, JavaScript, javascript, ECMAScript, ecmascript], factory class: jdk.nashorn.api.scripting.NashornScriptEngineFactory 2021-07-13 16:44:15,947 RMI TCP Connection(3)-127.0.0.1 DEBUG PluginManager 'Core' found 118 plugins 2021-07-13 16:44:15,947 RMI TCP Connection(3)-127.0.0.1 DEBUG PluginManager 'Level' found 0 plugins 2021-07-13 16:44:15,956 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=property, class=org.apache.logging.log4j.core.config.Property]. 2021-07-13 16:44:15,977 RMI TCP Connection(3)-127.0.0.1 DEBUG PluginManager 'TypeConverter' found 26 plugins 2021-07-13 16:44:15,993 RMI TCP Connection(3)-127.0.0.1 DEBUG createProperty(name="log_pattern", value="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n") 2021-07-13 16:44:15,993 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=property, class=org.apache.logging.log4j.core.config.Property]. 2021-07-13 16:44:15,993 RMI TCP Connection(3)-127.0.0.1 DEBUG createProperty(name="file_path", value="./logs") 2021-07-13 16:44:15,994 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=property, class=org.apache.logging.log4j.core.config.Property]. 2021-07-13 16:44:15,994 RMI TCP Connection(3)-127.0.0.1 DEBUG createProperty(name="file_max_size", value="30MB") 2021-07-13 16:44:15,995 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=property, class=org.apache.logging.log4j.core.config.Property]. 2021-07-13 16:44:15,996 RMI TCP Connection(3)-127.0.0.1 DEBUG createProperty(name="backup_folder", value="${date:yyyy-MM}") 2021-07-13 16:44:15,999 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=property, class=org.apache.logging.log4j.core.config.Property]. 2021-07-13 16:44:15,999 RMI TCP Connection(3)-127.0.0.1 DEBUG createProperty(name="backup_file_suffix", value="-%d{yyyy-MM-dd}-%i.log") 2021-07-13 16:44:16,000 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=properties, class=org.apache.logging.log4j.core.config.PropertiesPlugin]. 2021-07-13 16:44:16,007 RMI TCP Connection(3)-127.0.0.1 DEBUG configureSubstitutor(={log_pattern=[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n, file_path=./logs, file_max_size=30MB, backup_folder=${date:yyyy-MM}, backup_file_suffix=-%d{yyyy-MM-dd}-%i.log}, Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml)) 2021-07-13 16:44:16,007 RMI TCP Connection(3)-127.0.0.1 DEBUG PluginManager 'Lookup' found 13 plugins 2021-07-13 16:44:16,009 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=filter, class=org.apache.logging.log4j.core.filter.ThresholdFilter]. 2021-07-13 16:44:16,015 RMI TCP Connection(3)-127.0.0.1 DEBUG createFilter(level="DEBUG", onMatch="ACCEPT", onMismatch="DENY") 2021-07-13 16:44:16,016 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=layout, class=org.apache.logging.log4j.core.layout.PatternLayout]. 2021-07-13 16:44:16,022 RMI TCP Connection(3)-127.0.0.1 DEBUG PatternLayout$Builder(pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n", PatternSelector=null, Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml), Replace=null, charset="null", alwaysWriteExceptions="null", disableAnsi="null", noConsoleNoAnsi="null", header="null", footer="null") 2021-07-13 16:44:16,024 RMI TCP Connection(3)-127.0.0.1 DEBUG PluginManager 'Converter' found 44 plugins 2021-07-13 16:44:16,047 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=appender, class=org.apache.logging.log4j.core.appender.ConsoleAppender]. 2021-07-13 16:44:16,058 RMI TCP Connection(3)-127.0.0.1 DEBUG ConsoleAppender$Builder(target="SYSTEM_OUT", follow="null", direct="null", bufferedIo="null", bufferSize="null", immediateFlush="null", ignoreExceptions="null", PatternLayout([%d{HH:mm:ss:SSS}] [%p] - %l - %m%n), name="Console", Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml), ThresholdFilter(DEBUG), ={}) 2021-07-13 16:44:16,061 RMI TCP Connection(3)-127.0.0.1 DEBUG Starting OutputStreamManager SYSTEM_OUT.false.false 2021-07-13 16:44:16,061 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=filter, class=org.apache.logging.log4j.core.filter.ThresholdFilter]. 2021-07-13 16:44:16,061 RMI TCP Connection(3)-127.0.0.1 DEBUG createFilter(level="DEBUG", onMatch="ACCEPT", onMismatch="DENY") 2021-07-13 16:44:16,062 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=layout, class=org.apache.logging.log4j.core.layout.PatternLayout]. 2021-07-13 16:44:16,062 RMI TCP Connection(3)-127.0.0.1 DEBUG PatternLayout$Builder(pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n", PatternSelector=null, Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml), Replace=null, charset="null", alwaysWriteExceptions="null", disableAnsi="null", noConsoleNoAnsi="null", header="null", footer="null") 2021-07-13 16:44:16,063 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=TimeBasedTriggeringPolicy, class=org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy]. 2021-07-13 16:44:16,068 RMI TCP Connection(3)-127.0.0.1 DEBUG TimeBasedTriggeringPolicy$Builder(interval="null", modulate="null", maxRandomDelay="null") 2021-07-13 16:44:16,069 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=SizeBasedTriggeringPolicy, class=org.apache.logging.log4j.core.appender.rolling.SizeBasedTriggeringPolicy]. 2021-07-13 16:44:16,069 RMI TCP Connection(3)-127.0.0.1 DEBUG createPolicy(size="30MB") 2021-07-13 16:44:16,071 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=Policies, class=org.apache.logging.log4j.core.appender.rolling.CompositeTriggeringPolicy]. 2021-07-13 16:44:16,072 RMI TCP Connection(3)-127.0.0.1 DEBUG createPolicy(={TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=31457280)}) 2021-07-13 16:44:16,072 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=DefaultRolloverStrategy, class=org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy]. 2021-07-13 16:44:16,077 RMI TCP Connection(3)-127.0.0.1 DEBUG DefaultRolloverStrategy$Builder(max="20", min="null", fileIndex="null", compressionLevel="null", ={}, stopCustomActionsOnError="null", tempCompressedFilePattern="null", Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml)) 2021-07-13 16:44:16,078 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=appender, class=org.apache.logging.log4j.core.appender.RollingFileAppender]. 2021-07-13 16:44:16,081 RMI TCP Connection(3)-127.0.0.1 DEBUG RollingFileAppender$Builder(fileName="./logs/debug.log", filePattern="./logs/2021-07/debug-%d{yyyy-MM-dd}-%i.log", append="null", locking="null", Policies(CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=31457280)])), DefaultRolloverStrategy(DefaultRolloverStrategy(min=1, max=20, useMax=true)), advertise="null", advertiseUri="null", createOnDemand="null", filePermissions="null", fileOwner="null", fileGroup="null", bufferedIo="null", bufferSize="null", immediateFlush="null", ignoreExceptions="null", PatternLayout([%d{HH:mm:ss:SSS}] [%p] - %l - %m%n), name="RollingFileDebug", Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml), ThresholdFilter(DEBUG), ={}) 2021-07-13 16:44:16,091 RMI TCP Connection(3)-127.0.0.1 DEBUG Returning file creation time for D:\software2\tomcat\apache-tomcat-8.5.59-windows-x64\apache-tomcat-8.5.59\bin\.\logs\debug.log 2021-07-13 16:44:16,091 RMI TCP Connection(3)-127.0.0.1 DEBUG Starting RollingFileManager ./logs/debug.log 2021-07-13 16:44:16,094 RMI TCP Connection(3)-127.0.0.1 DEBUG PluginManager 'FileConverter' found 2 plugins 2021-07-13 16:44:16,097 RMI TCP Connection(3)-127.0.0.1 DEBUG Setting prev file time to 2021-07-13T16:22:18.003+0800 2021-07-13 16:44:16,102 RMI TCP Connection(3)-127.0.0.1 DEBUG Initializing triggering policy CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=31457280)]) 2021-07-13 16:44:16,103 RMI TCP Connection(3)-127.0.0.1 DEBUG Initializing triggering policy TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false) 2021-07-13 16:44:16,104 RMI TCP Connection(3)-127.0.0.1 DEBUG Initializing triggering policy SizeBasedTriggeringPolicy(size=31457280) 2021-07-13 16:44:16,104 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=filter, class=org.apache.logging.log4j.core.filter.ThresholdFilter]. 2021-07-13 16:44:16,105 RMI TCP Connection(3)-127.0.0.1 DEBUG createFilter(level="INFO", onMatch="ACCEPT", onMismatch="DENY") 2021-07-13 16:44:16,105 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=layout, class=org.apache.logging.log4j.core.layout.PatternLayout]. 2021-07-13 16:44:16,106 RMI TCP Connection(3)-127.0.0.1 DEBUG PatternLayout$Builder(pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n", PatternSelector=null, Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml), Replace=null, charset="null", alwaysWriteExceptions="null", disableAnsi="null", noConsoleNoAnsi="null", header="null", footer="null") 2021-07-13 16:44:16,107 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=TimeBasedTriggeringPolicy, class=org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy]. 2021-07-13 16:44:16,108 RMI TCP Connection(3)-127.0.0.1 DEBUG TimeBasedTriggeringPolicy$Builder(interval="null", modulate="null", maxRandomDelay="null") 2021-07-13 16:44:16,108 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=SizeBasedTriggeringPolicy, class=org.apache.logging.log4j.core.appender.rolling.SizeBasedTriggeringPolicy]. 2021-07-13 16:44:16,109 RMI TCP Connection(3)-127.0.0.1 DEBUG createPolicy(size="30MB") 2021-07-13 16:44:16,109 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=Policies, class=org.apache.logging.log4j.core.appender.rolling.CompositeTriggeringPolicy]. 2021-07-13 16:44:16,110 RMI TCP Connection(3)-127.0.0.1 DEBUG createPolicy(={TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=31457280)}) 2021-07-13 16:44:16,110 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=DefaultRolloverStrategy, class=org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy]. 2021-07-13 16:44:16,110 RMI TCP Connection(3)-127.0.0.1 DEBUG DefaultRolloverStrategy$Builder(max="20", min="null", fileIndex="null", compressionLevel="null", ={}, stopCustomActionsOnError="null", tempCompressedFilePattern="null", Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml)) 2021-07-13 16:44:16,111 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=appender, class=org.apache.logging.log4j.core.appender.RollingFileAppender]. 2021-07-13 16:44:16,111 RMI TCP Connection(3)-127.0.0.1 DEBUG RollingFileAppender$Builder(fileName="./logs/info.log", filePattern="./logs/2021-07/info-%d{yyyy-MM-dd}-%i.log", append="null", locking="null", Policies(CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=31457280)])), DefaultRolloverStrategy(DefaultRolloverStrategy(min=1, max=20, useMax=true)), advertise="null", advertiseUri="null", createOnDemand="null", filePermissions="null", fileOwner="null", fileGroup="null", bufferedIo="null", bufferSize="null", immediateFlush="null", ignoreExceptions="null", PatternLayout([%d{HH:mm:ss:SSS}] [%p] - %l - %m%n), name="RollingFileInfo", Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml), ThresholdFilter(INFO), ={}) 2021-07-13 16:44:16,113 RMI TCP Connection(3)-127.0.0.1 DEBUG Returning file creation time for D:\software2\tomcat\apache-tomcat-8.5.59-windows-x64\apache-tomcat-8.5.59\bin\.\logs\info.log 2021-07-13 16:44:16,113 RMI TCP Connection(3)-127.0.0.1 DEBUG Starting RollingFileManager ./logs/info.log 2021-07-13 16:44:16,113 RMI TCP Connection(3)-127.0.0.1 DEBUG PluginManager 'FileConverter' found 2 plugins 2021-07-13 16:44:16,114 RMI TCP Connection(3)-127.0.0.1 DEBUG Setting prev file time to 2021-07-13T16:22:18.026+0800 2021-07-13 16:44:16,114 RMI TCP Connection(3)-127.0.0.1 DEBUG Initializing triggering policy CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=31457280)]) 2021-07-13 16:44:16,114 RMI TCP Connection(3)-127.0.0.1 DEBUG Initializing triggering policy TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false) 2021-07-13 16:44:16,114 RMI TCP Connection(3)-127.0.0.1 DEBUG Initializing triggering policy SizeBasedTriggeringPolicy(size=31457280) 2021-07-13 16:44:16,114 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=filter, class=org.apache.logging.log4j.core.filter.ThresholdFilter]. 2021-07-13 16:44:16,115 RMI TCP Connection(3)-127.0.0.1 DEBUG createFilter(level="WARN", onMatch="ACCEPT", onMismatch="DENY") 2021-07-13 16:44:16,115 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=layout, class=org.apache.logging.log4j.core.layout.PatternLayout]. 2021-07-13 16:44:16,117 RMI TCP Connection(3)-127.0.0.1 DEBUG PatternLayout$Builder(pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n", PatternSelector=null, Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml), Replace=null, charset="null", alwaysWriteExceptions="null", disableAnsi="null", noConsoleNoAnsi="null", header="null", footer="null") 2021-07-13 16:44:16,118 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=TimeBasedTriggeringPolicy, class=org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy]. 2021-07-13 16:44:16,118 RMI TCP Connection(3)-127.0.0.1 DEBUG TimeBasedTriggeringPolicy$Builder(interval="null", modulate="null", maxRandomDelay="null") 2021-07-13 16:44:16,118 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=SizeBasedTriggeringPolicy, class=org.apache.logging.log4j.core.appender.rolling.SizeBasedTriggeringPolicy]. 2021-07-13 16:44:16,119 RMI TCP Connection(3)-127.0.0.1 DEBUG createPolicy(size="30MB") 2021-07-13 16:44:16,120 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=Policies, class=org.apache.logging.log4j.core.appender.rolling.CompositeTriggeringPolicy]. 2021-07-13 16:44:16,120 RMI TCP Connection(3)-127.0.0.1 DEBUG createPolicy(={TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=31457280)}) 2021-07-13 16:44:16,120 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=appender, class=org.apache.logging.log4j.core.appender.RollingFileAppender]. 2021-07-13 16:44:16,122 RMI TCP Connection(3)-127.0.0.1 DEBUG RollingFileAppender$Builder(fileName="./logs/warn.log", filePattern="./logs/2021-07/warn-%d{yyyy-MM-dd}-%i.log", append="null", locking="null", Policies(CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=31457280)])), Strategy=null, advertise="null", advertiseUri="null", createOnDemand="null", filePermissions="null", fileOwner="null", fileGroup="null", bufferedIo="null", bufferSize="null", immediateFlush="null", ignoreExceptions="null", PatternLayout([%d{HH:mm:ss:SSS}] [%p] - %l - %m%n), name="RollingFileWarn", Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml), ThresholdFilter(WARN), ={}) 2021-07-13 16:44:16,124 RMI TCP Connection(3)-127.0.0.1 DEBUG Returning file creation time for D:\software2\tomcat\apache-tomcat-8.5.59-windows-x64\apache-tomcat-8.5.59\bin\.\logs\warn.log 2021-07-13 16:44:16,125 RMI TCP Connection(3)-127.0.0.1 DEBUG Starting RollingFileManager ./logs/warn.log 2021-07-13 16:44:16,125 RMI TCP Connection(3)-127.0.0.1 DEBUG PluginManager 'FileConverter' found 2 plugins 2021-07-13 16:44:16,125 RMI TCP Connection(3)-127.0.0.1 DEBUG Setting prev file time to 2021-07-13T16:22:18.036+0800 2021-07-13 16:44:16,126 RMI TCP Connection(3)-127.0.0.1 DEBUG Initializing triggering policy CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=31457280)]) 2021-07-13 16:44:16,126 RMI TCP Connection(3)-127.0.0.1 DEBUG Initializing triggering policy TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false) 2021-07-13 16:44:16,126 RMI TCP Connection(3)-127.0.0.1 DEBUG Initializing triggering policy SizeBasedTriggeringPolicy(size=31457280) 2021-07-13 16:44:16,127 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=filter, class=org.apache.logging.log4j.core.filter.ThresholdFilter]. 2021-07-13 16:44:16,127 RMI TCP Connection(3)-127.0.0.1 DEBUG createFilter(level="ERROR", onMatch="ACCEPT", onMismatch="DENY") 2021-07-13 16:44:16,127 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=layout, class=org.apache.logging.log4j.core.layout.PatternLayout]. 2021-07-13 16:44:16,128 RMI TCP Connection(3)-127.0.0.1 DEBUG PatternLayout$Builder(pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n", PatternSelector=null, Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml), Replace=null, charset="null", alwaysWriteExceptions="null", disableAnsi="null", noConsoleNoAnsi="null", header="null", footer="null") 2021-07-13 16:44:16,128 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=TimeBasedTriggeringPolicy, class=org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy]. 2021-07-13 16:44:16,128 RMI TCP Connection(3)-127.0.0.1 DEBUG TimeBasedTriggeringPolicy$Builder(interval="null", modulate="null", maxRandomDelay="null") 2021-07-13 16:44:16,129 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=SizeBasedTriggeringPolicy, class=org.apache.logging.log4j.core.appender.rolling.SizeBasedTriggeringPolicy]. 2021-07-13 16:44:16,129 RMI TCP Connection(3)-127.0.0.1 DEBUG createPolicy(size="30MB") 2021-07-13 16:44:16,129 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=Policies, class=org.apache.logging.log4j.core.appender.rolling.CompositeTriggeringPolicy]. 2021-07-13 16:44:16,130 RMI TCP Connection(3)-127.0.0.1 DEBUG createPolicy(={TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=31457280)}) 2021-07-13 16:44:16,130 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=appender, class=org.apache.logging.log4j.core.appender.RollingFileAppender]. 2021-07-13 16:44:16,131 RMI TCP Connection(3)-127.0.0.1 DEBUG RollingFileAppender$Builder(fileName="./logs/error.log", filePattern="./logs/2021-07/error-%d{yyyy-MM-dd}-%i.log", append="null", locking="null", Policies(CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=31457280)])), Strategy=null, advertise="null", advertiseUri="null", createOnDemand="null", filePermissions="null", fileOwner="null", fileGroup="null", bufferedIo="null", bufferSize="null", immediateFlush="null", ignoreExceptions="null", PatternLayout([%d{HH:mm:ss:SSS}] [%p] - %l - %m%n), name="RollingFileError", Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml), ThresholdFilter(ERROR), ={}) 2021-07-13 16:44:16,132 RMI TCP Connection(3)-127.0.0.1 DEBUG Returning file creation time for D:\software2\tomcat\apache-tomcat-8.5.59-windows-x64\apache-tomcat-8.5.59\bin\.\logs\error.log 2021-07-13 16:44:16,132 RMI TCP Connection(3)-127.0.0.1 DEBUG Starting RollingFileManager ./logs/error.log 2021-07-13 16:44:16,133 RMI TCP Connection(3)-127.0.0.1 DEBUG PluginManager 'FileConverter' found 2 plugins 2021-07-13 16:44:16,133 RMI TCP Connection(3)-127.0.0.1 DEBUG Setting prev file time to 2021-07-13T16:22:18.045+0800 2021-07-13 16:44:16,134 RMI TCP Connection(3)-127.0.0.1 DEBUG Initializing triggering policy CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false), SizeBasedTriggeringPolicy(size=31457280)]) 2021-07-13 16:44:16,134 RMI TCP Connection(3)-127.0.0.1 DEBUG Initializing triggering policy TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=false) 2021-07-13 16:44:16,134 RMI TCP Connection(3)-127.0.0.1 DEBUG Initializing triggering policy SizeBasedTriggeringPolicy(size=31457280) 2021-07-13 16:44:16,135 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=appenders, class=org.apache.logging.log4j.core.config.AppendersPlugin]. 2021-07-13 16:44:16,135 RMI TCP Connection(3)-127.0.0.1 DEBUG createAppenders(={Console, RollingFileDebug, RollingFileInfo, RollingFileWarn, RollingFileError}) 2021-07-13 16:44:16,135 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=logger, class=org.apache.logging.log4j.core.config.LoggerConfig]. 2021-07-13 16:44:16,137 RMI TCP Connection(3)-127.0.0.1 DEBUG createLogger(additivity="true", level="TRACE", name="org.springframework", includeLocation="null", ={}, ={}, Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml), Filter=null) 2021-07-13 16:44:16,141 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=AppenderRef, class=org.apache.logging.log4j.core.config.AppenderRef]. 2021-07-13 16:44:16,141 RMI TCP Connection(3)-127.0.0.1 DEBUG createAppenderRef(ref="Console", level="null", Filter=null) 2021-07-13 16:44:16,142 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=logger, class=org.apache.logging.log4j.core.config.LoggerConfig]. 2021-07-13 16:44:16,143 RMI TCP Connection(3)-127.0.0.1 DEBUG createLogger(additivity="true", level="INFO", name="org.mybatis", includeLocation="null", ={Console}, ={}, Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml), Filter=null) 2021-07-13 16:44:16,144 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=appender-ref, class=org.apache.logging.log4j.core.config.AppenderRef]. 2021-07-13 16:44:16,144 RMI TCP Connection(3)-127.0.0.1 DEBUG createAppenderRef(ref="Console", level="null", Filter=null) 2021-07-13 16:44:16,144 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=appender-ref, class=org.apache.logging.log4j.core.config.AppenderRef]. 2021-07-13 16:44:16,145 RMI TCP Connection(3)-127.0.0.1 DEBUG createAppenderRef(ref="RollingFileDebug", level="null", Filter=null) 2021-07-13 16:44:16,145 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=appender-ref, class=org.apache.logging.log4j.core.config.AppenderRef]. 2021-07-13 16:44:16,145 RMI TCP Connection(3)-127.0.0.1 DEBUG createAppenderRef(ref="RollingFileInfo", level="null", Filter=null) 2021-07-13 16:44:16,146 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=appender-ref, class=org.apache.logging.log4j.core.config.AppenderRef]. 2021-07-13 16:44:16,146 RMI TCP Connection(3)-127.0.0.1 DEBUG createAppenderRef(ref="RollingFileWarn", level="null", Filter=null) 2021-07-13 16:44:16,146 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=appender-ref, class=org.apache.logging.log4j.core.config.AppenderRef]. 2021-07-13 16:44:16,147 RMI TCP Connection(3)-127.0.0.1 DEBUG createAppenderRef(ref="RollingFileError", level="null", Filter=null) 2021-07-13 16:44:16,147 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=root, class=org.apache.logging.log4j.core.config.LoggerConfig$RootLogger]. 2021-07-13 16:44:16,148 RMI TCP Connection(3)-127.0.0.1 DEBUG createLogger(additivity="null", level="DEBUG", includeLocation="null", ={Console, RollingFileDebug, RollingFileInfo, RollingFileWarn, RollingFileError}, ={}, Configuration(E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml), Filter=null) 2021-07-13 16:44:16,149 RMI TCP Connection(3)-127.0.0.1 DEBUG Building Plugin[name=loggers, class=org.apache.logging.log4j.core.config.LoggersPlugin]. 2021-07-13 16:44:16,150 RMI TCP Connection(3)-127.0.0.1 DEBUG createLoggers(={org.springframework, org.mybatis, root}) 2021-07-13 16:44:16,152 RMI TCP Connection(3)-127.0.0.1 DEBUG Configuration XmlConfiguration[location=E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml] initialized 2021-07-13 16:44:16,152 RMI TCP Connection(3)-127.0.0.1 DEBUG Starting configuration XmlConfiguration[location=E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml] 2021-07-13 16:44:16,154 RMI TCP Connection(3)-127.0.0.1 DEBUG Log4j2 ConfigurationScheduler starting 1 threads 2021-07-13 16:44:16,155 RMI TCP Connection(3)-127.0.0.1 DEBUG Started configuration XmlConfiguration[location=E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml] OK. 2021-07-13 16:44:16,156 RMI TCP Connection(3)-127.0.0.1 DEBUG Shutting down OutputStreamManager SYSTEM_OUT.false.false-1 2021-07-13 16:44:16,156 RMI TCP Connection(3)-127.0.0.1 DEBUG Shut down OutputStreamManager SYSTEM_OUT.false.false-1, all resources released: true 2021-07-13 16:44:16,156 RMI TCP Connection(3)-127.0.0.1 DEBUG Appender DefaultConsole-1 stopped with status true 2021-07-13 16:44:16,156 RMI TCP Connection(3)-127.0.0.1 DEBUG Stopped org.apache.logging.log4j.core.config.DefaultConfiguration@4849a828 OK 2021-07-13 16:44:16,162 RMI TCP Connection(3)-127.0.0.1 DEBUG Registering MBean org.apache.logging.log4j2:type=49a59ff6 2021-07-13 16:44:16,166 RMI TCP Connection(3)-127.0.0.1 DEBUG Registering MBean org.apache.logging.log4j2:type=49a59ff6,component=StatusLogger 2021-07-13 16:44:16,168 RMI TCP Connection(3)-127.0.0.1 DEBUG Registering MBean org.apache.logging.log4j2:type=49a59ff6,component=ContextSelector 2021-07-13 16:44:16,170 RMI TCP Connection(3)-127.0.0.1 DEBUG Registering MBean org.apache.logging.log4j2:type=49a59ff6,component=Loggers,name= 2021-07-13 16:44:16,171 RMI TCP Connection(3)-127.0.0.1 DEBUG Registering MBean org.apache.logging.log4j2:type=49a59ff6,component=Loggers,name=org.springframework 2021-07-13 16:44:16,172 RMI TCP Connection(3)-127.0.0.1 DEBUG Registering MBean org.apache.logging.log4j2:type=49a59ff6,component=Loggers,name=org.mybatis 2021-07-13 16:44:16,174 RMI TCP Connection(3)-127.0.0.1 DEBUG Registering MBean org.apache.logging.log4j2:type=49a59ff6,component=Appenders,name=Console 2021-07-13 16:44:16,175 RMI TCP Connection(3)-127.0.0.1 DEBUG Registering MBean org.apache.logging.log4j2:type=49a59ff6,component=Appenders,name=RollingFileDebug 2021-07-13 16:44:16,175 RMI TCP Connection(3)-127.0.0.1 DEBUG Registering MBean org.apache.logging.log4j2:type=49a59ff6,component=Appenders,name=RollingFileInfo 2021-07-13 16:44:16,175 RMI TCP Connection(3)-127.0.0.1 DEBUG Registering MBean org.apache.logging.log4j2:type=49a59ff6,component=Appenders,name=RollingFileWarn 2021-07-13 16:44:16,175 RMI TCP Connection(3)-127.0.0.1 DEBUG Registering MBean org.apache.logging.log4j2:type=49a59ff6,component=Appenders,name=RollingFileError 2021-07-13 16:44:16,180 RMI TCP Connection(3)-127.0.0.1 DEBUG org.apache.logging.log4j.core.util.SystemClock does not support precise timestamps. 2021-07-13 16:44:16,181 RMI TCP Connection(3)-127.0.0.1 DEBUG Reconfiguration complete for context[name=49a59ff6] at URI E:\web\source\zhaocaifeng\coding\newday\oldday\target\oldday\WEB-INF\classes\log4j2.xml (org.apache.logging.log4j.core.LoggerContext@2abad743) with optional ClassLoader: null 2021-07-13 16:44:16,181 RMI TCP Connection(3)-127.0.0.1 DEBUG Shutdown hook enabled. Registering a new one. 2021-07-13 16:44:16,182 RMI TCP Connection(3)-127.0.0.1 DEBUG LoggerContext[name=49a59ff6, org.apache.logging.log4j.core.LoggerContext@2abad743] started OK.真正讀取log4j配置的代碼如下
org.apache.logging.log4j.core.config.ConfigurationFactory 在log4j-core的包中 private Configuration getConfiguration(LoggerContext loggerContext, boolean isTest, String name) {boolean named = Strings.isNotEmpty(name);ClassLoader loader = LoaderUtil.getThreadContextClassLoader();Iterator var6 = getFactories().iterator();while(true) {ConfigurationFactory factory;String prefix;String[] types;do {if (!var6.hasNext()) {return null;}factory = (ConfigurationFactory)var6.next();prefix = isTest ? "log4j2-test" : "log4j2";types = factory.getSupportedTypes();} while(types == null);String[] var11 = types;int var12 = types.length;for(int var13 = 0; var13 < var12; ++var13) {String suffix = var11[var13];if (!suffix.equals("*")) {String configName = named ? prefix + name + suffix : prefix + suffix;ConfigurationSource source = ConfigurationSource.fromResource(configName, loader);if (source != null) {if (!factory.isActive()) {LOGGER.warn("Found configuration file {} for inactive ConfigurationFactory {}", configName, factory.getClass().getName());}return factory.getConfiguration(loggerContext, source);}}}}}調(diào)用堆棧
二、使用slf4j+log4j
pom
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.25</version> </dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-to-slf4j</artifactId><version>2.13.3</version> </dependency>總結(jié)
以上是生活随笔為你收集整理的spring5 配置log系统MAVEN的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring bean的生命周期和创建流
- 下一篇: spring mvc 总体启动流程