log4j2.xml配置,导致启动报错

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

原文地址:https://www.cnblogs.com/qts-hope/p/10886792.html

时间: 2024-10-09 17:34:01

log4j2.xml配置,导致启动报错的相关文章

geowebcache1.14.1配置arcgislayer启动报错的解决

新发布的geowebcahe1.14.1的版本中,如果配置了arcgislayer,则启动时会抛出异常,"No ArcGISCacheGridsetConfiguration could be found", 该异常由ArcGISCacheLayer.java抛出,在第242行,原因是根据类型找不到bean,ArcGISCacheGridsetConfiguration这个类没有注册为bean,geowebcahe-core-context.xml中增加一行 <bean id=&

springboot---没有配置数据库启动报错

If you want an embedded database please put a supported one on the classpath. If you have database settings to be loaded from a particular profile you may need to active it (no profiles are currently active). 解决方法: 在spring boot入口方法上加上注解 //禁用spring自动配

Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误——SHH框架

SHH框架工程,Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误 1.查看配置文件web.xml中是否配置.org.springframework.web.context.ContextLoaderListener在web.xml配置文件中已经配置 2.查看工程是否添加此jar包,org.springframework.web.context.ContextLoaderListener的jar包为spring

LogStash启动报错:&lt;Redis::CommandError: ERR unknown command &#39;script&#39;&gt;与batch_count 的 配置

环境条件: 系统版本:centos 6.8 logstash版本:6.3.2 redis版本:2.4 logstash  input配置: input { redis { host => "172.16.73.33" #redis ip port => "52611" #redis 端口 password =>"123456" #redis 密码 db => 9 # 指定redis 库编号 data_type =>

tomcat下部署了多个项目启动报错java web error:Choose unique values for the &#39;webAppRootKey&#39; context-param in your web.xml files

应该是tomcat下部署了多个项目且都使用log4j. <!--如果不定义webAppRootKey参数,那么webAppRootKey就是缺省的"webapp.root".但最好设置,以免项目之间的名称冲突. 定义以后,在Web Container启动时将把ROOT的绝对路径写到系统变量里. 然后log4j的配置文件里就可以用${webName.root }来表示Web目录的绝对路径,把log文件存放于webapp中. 此参数用于后面的“Log4jConfigListener”

linux查看与修改交换内存配置(解决zabbix-agent启动报错)

问题 zabbix-agent在一台centos6.5上启动报错: cannot allocate shared memory of size 949056: [28] No space left on device cannot allocate shared memory for collector 检查 # sysctl -a | grep shm kernel.shmmax = 33554432 kernel.shmall = 2097152 kernel.shmmni = 4096 k

spring boot + jersey工程由jar包转为war包在tomcat中启动报错问题

第一步: 在maven下,将Spring Boot工程由jar转换为war包启动,很简单,将pom.xml文件中的packaging改为war <packaging>war</packaging> 如果你使用Gradle,你需要修改build.gradle来将war插件应用到项目上: apply plugin: 'war'第二步: 产生一个可部署war包的第一步是提供一个SpringBootServletInitializer子类,并覆盖它的configure方法.这充分利用了Sp

struts2启动报错com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1

好久没有搞struts2,今天配置strut2.2.1,启动时遇到个小问题.记录下. tomcat启动报错: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Class: com.opensymphony.xwork2.spring.SpringObjectFactory File: SpringObjectFactory.java Method: getClassInstance Line: 220

maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener

本篇文章主要介绍了"maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener ",主要涉及到maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener 方面的内容,对于maven web 项目中启动报错jav