项目中遇到问题,当使用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