【问题标题】:Defining file location in log4j2.xml after deploying WAR部署 WAR 后在 log4j2.xml 中定义文件位置
【发布时间】:2014-09-06 05:01:59
【问题描述】:

我已经打印到文件以用于 log4j2 日志记录,但是在将我的项目作为 WAR 部署到 tomcat 服务器上时,我似乎无法找到日志文件的发送位置。我有以下 log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
    </Console>
    <File name="AE" fileName="/AE.log" append="false">
        <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} -  
%msg%n"/>
    </File>
      <File name="BP" fileName="/BP.log" append="false">
        <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - 
%msg%n"/>
    </File>
      <File name="CBK" fileName="/CBK.log" append="false">
        <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} -    
%msg%n"/>
    </File>
</Appenders>
<Loggers>
    <Root level="debug">
        <AppenderRef ref="Console" level="debug" />
        <AppenderRef ref="AE" level="debug"/>
        <AppenderRef ref="BP" level="debug"/>
        <AppenderRef ref="CBK" level="debug"/>
    </Root>
</Loggers>
</Configuration>

有没有一种方法可以正确定义我的文件名路径,以便在部署我的 WAR 文件后,将我的日志发送到诸如 WEB-INF 之类的地方?

【问题讨论】:

    标签: java tomcat logging configuration log4j2


    【解决方案1】:

    关于日志文件消失的问题,是不是运行tomcat服务器的用户没有写文件到根目录的权限?

    关于您的文件名路径问题,可以使用 ${sys:some.property} 语法在路径中使用系统属性。

    【讨论】:

    • 我实际上能够通过将我的路径定义为“${sys:catalina.home}/logs/ae.log”来使其工作,并且我的日志文件位置出现在 tomcat/logs/ ae.log,这是用来部署我的战争的 tomcat。所以就你的语法而言,这是正确的。
    猜你喜欢
    • 1970-01-01
    • 2012-12-16
    • 2012-04-03
    • 2019-08-15
    • 2014-12-23
    • 1970-01-01
    • 2017-11-08
    • 2020-12-03
    • 2015-07-30
    相关资源
    最近更新 更多