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,但我不希望这会影响这种特定的情况。
似乎并没有工作....我在文本目录$ {} catalina.base一个日志文件名,所以不会看起来像属性的分辨率得到了正在工作的服务?我正在使用一个相对目录,它将日志置于正确的部署位置(作为服务),但在我的开发机器的bin目录中创建了一个log/pidataboard.log。现在已经足够好了,但是肯定必须要有一种方法在两种情况下都能正常工作? –
所以你在log4j.xml里面试过'$ {catalina.base}'?嗯。我从来没有使用log4j的XML配置,但我知道这适用于'.properties'文件配置。这显然[应该工作](http://stackoverflow.com/questions/2810926/how-to-give-dynamic-file-name-in-the-appender-in-log4j-xml)。 –