項目中遇到問題,當使用tomcat啟動時,沒問題;當使用內置tomcat啟動時卻報錯,找不到日志路徑。
變量位置:
<properties>
<property name="LOG_HOME">${sys:catalina.base}/logs</property>
<property name="PATTERN">%-5level^|%d{ISO8601}^|app-service^|%msg%n
</property>
<property name="CONSOLE_PATTERN">%d{HH:mm:ss,SSS} %-5level %m%n
</property>
</properties>
catalina.base是tomcat的變量,當使用外置的tomcat會在catalina.bat或者catalina.sh中初始化這個變量,表示tomcat的基礎路徑,而內置tomcat沒有初始化這個變量,通過查看官網文檔,找到兩個解決的辦法:
1.可以在eclipse的啟動選項中添加變量,如下圖
2.可以為該變量增加默認值,表達式為${Prefix:propertiesname:-defaultValue}用:-表示后邊的是默認值,將${sys:catalina.base}改為${sys:catalina.base:-d:}(這里用d盤做日志目錄)
相關文檔參見log4j2官方文檔:
https://logging.apache.org/log4j/2.x/manual/configuration.html#XML