2015-07-10 73 views
1

我在WindowsENV:CATALINA_BASE在Tomcat的8.0不解析/ log4j的

<Configuration> 
 
    <Appenders> 
 
     <File name="FileLog" fileName="${env:CATALINA_BASE}/logs/pidashboard.log"> 
 
      <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> 
 
     </File> 
 
    </Appenders> 
 
    <Loggers> 
 
     <Root level="debug"> 
 
      <AppenderRef ref="FileLog"/> 
 
     </Root> 
 
    </Loggers> 
 
</Configuration>

在我的机器,文件名解决了Tomcat的8.0相对简单的log4j的配置和创建日志适当。在我的部署机器上,如果我将行更改为CATALINA_BASE解析的硬编码路径,则会出现错误,指出它无法创建名称为 - 字面上的文件 - ${env:CATALINA_BASE}/logs/pidashboard.log,日志得到正确创建。

这些都是相当的Tomcat的香草装置,所以我不确定是什么导致了差异。我的开发机器运行的是Windows 10,而我的生产机器正在运行Windows Server 2008,但我不希望这会影响这种特定的情况。

回答

0

如果您正在使用Tomcat的Windows服务来启动Tomcat,那么环境变量CATALINA_BASE不会设置,所以它不会是可用的。尝试使用系统属性catalina.base而不是环境变量CATALINA_BASE

+0

似乎并没有工作....我在文本目录$ {} catalina.base一个日志文件名,所以不会看起来像属性的分辨率得到了正在工作的服务?我正在使用一个相对目录,它将日志置于正确的部署位置(作为服务),但在我的开发机器的bin目录中创建了一个log/pidataboard.log。现在已经足够好了,但是肯定必须要有一种方法在两种情况下都能正常工作? –

+0

所以你在log4j.xml里面试过'$ {catalina.base}'?嗯。我从来没有使用log4j的XML配置,但我知道这适用于'.properties'文件配置。这显然[应该工作](http://stackoverflow.com/questions/2810926/how-to-give-dynamic-file-name-in-the-appender-in-log4j-xml)。 –