這兩天在eclipse下啟動springboot項目總是報:
Logging system failed to initialize using configuration from 'classpath:log4j2.xml'
java.io.FileNotFoundException: class path resource [log4j2.xml] cannot be resolved to URL because it does not exist
at org.springframework.util.ResourceUtils.getURL(ResourceUtils.java:137)
at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:297)
at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:266)
at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:229)
at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:202)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
經過網上查找,原因為springboot在獲取resources時,使用的uri,如果yml文件里配置為
#============== log4j2 =================
logging:
config: classpath:log4j2.xml
則此相對路徑springboot加載uri是找不到的,只能配置為
#============== log4j2 =================
logging:
config: file:config/log4j2.xml
使用系統路徑可以找到
如果在linux下,通過export classpath則無需改變路徑。
