web应用配置的logback,为什么在tomcat下没日志文件出现

web应用配置的logback,为什么在tomcat下没日志文件出现


    无比郁闷的时候到了,spring web 配置了logback.xml 文件,放在tomcat下面,应用日志一直不出现,配置了jetty 插件,

 <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <configuration>
                    <scanIntervalSeconds>13</scanIntervalSeconds>
                    <httpConnector>
                        <port>8080</port>
                    </httpConnector>
                    <webAppConfig>
                        <contextPath>/</contextPath>
                    </webAppConfig>
                </configuration>
            </plugin>

,日志文件:

<file>${catalina.home}/logs/app.xml.log</file>

tomat会在自己的脚本atalina.sh会设置${catalina.home}变量,可以搜索: -Dcatalina.home="$CATALINA_HOME" ,查看具体设置环境变量信息。

如果全局环境变量没设置,日志应该在tomcat目录下面的logs文件夹下,可现在运行死活不出来,用jetty插件,当然,找不打这个环境变量,会在web应用下catalina.home_IS_UNDEFINED 文件夹下出现日志(这个文件是如何这样命名的,请查看源码)。


于是,我把pom里面所有关于log4j的依赖统统去掉,这个时候,tomcat 下才出现了日志,而tomcat自身配置的日志也是log4j(tomcat7),感觉是不是和tomcat自身的配置冲突了,但看了tomcat的运行日志,也没发现什么异常的地方。


个人认为要么是log4j版本问题导致,要么是和tomcat自身的log4j冲突?所以,我把web应用里pom里面log4j依赖全都去掉(日志用logback),现在可以打印日志了。


附:为了让日志,统一打印到一个挂载的外部目录下(为了收集日志),日志文件路径配置为:

<file>${TOMCAT_LOG_HOME}/logs/${project_home}/simpleApp.xml.log</file>

${TOMCAT_LOG_HOME} 这个是在系统环境变量设置的,${project_home} 是在logback.xml开头处设置的一个环境变量:

<configuration>
    <variable name="project_home" value="XXXXapp" />
    ....................

为了让日志文件分开,也采用了

     <include resource="xxxg.xml" />

配置。详细看logback官方文档。

 


你可能感兴趣的:(web应用配置的logback,tomcat下没日志文件出现)