奋斗的松树苗 2019-04-28 10:03 采纳率: 0%
浏览 986

Log4j2,日志会输出到前一天的日志中?

log4J2的配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF" monitorInterval="10">
    <appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <ThresholdFilter level="DEBUG" />
            <PatternLayout pattern="[%-level][%d{yyyy-MM-dd HH:mm:ss,SSS}][%logger{36}]%msg%n" />
        </Console>
        <!-- 默认日志 -->
        <RollingFile name="defaultLog" fileName="${sys:catalina.home}/logs/my-web.log" filePattern="${sys:catalina.home}/logs/my-web.%d{yyyy-MM-dd}.log">
            <PatternLayout pattern="[%-level][%d{yyyy-MM-dd HH:mm:ss,SSS}][%logger{36}]%msg%n" />
            <ThresholdFilter level="INFO" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            </Policies>
            <DefaultRolloverStrategy>
                <Delete basePath="${sys:catalina.home}/logs" maxDepth="1">
                    <IfFileName glob="my-web.*.log" />
                    <IfLastModified age="10d" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
    </appenders>
    <loggers>
        <root level="all">
            <!-- <appender-ref ref="Console" /> -->
            <appender-ref ref="defaultLog" />
        </root>
    </loggers>
</configuration>

本地测试没问题,部署到线上后,每当隔天,日志会在前一天的日志中进行输出,当天的日志文件也有输出。
比如今天2019年4月28号:
-rw-r----- 1 root root 19M Apr 25 23:59 my-web.2019-04-24.log
-rw-r----- 1 root root 20M Apr 26 23:59 my-web.2019-04-25.log
-rw-r----- 1 root root 689K Apr 27 17:09 my-web.2019-04-26.log
-rw-r----- 1 root root 8.4M Apr 28 09:26 my-web.2019-04-27.log
-rw-r----- 1 root root 59K Apr 28 09:24 my-web.log
查看日志文件时,发现今天的日志在my-web.2019-04-27.log和my-web.log中均有输出。

网上查过,有说是因为tomcat配置的问题。线上部署的为了直接能够通过域名访问,所在server.xml中添加了context的配置,我按照一些说法,给context的name属性赋值,部署上去,发现不起作用,以下是tomcat的配置:

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="my-web" debug="0" reloadable="true" name="/my-web/"></Context>
</Host>

有没有知道原因的或是也遇到过此类问题的

  • 写回答

1条回答 默认 最新

  • 奋斗的松树苗 2019-05-05 10:14
    关注

    解决了,就是由于tomcat启动时实例化了两个log4J。可以在tomcat启动后,用jconsole查看Mbean,很明显的有两个。
    解决方法就是修改tomcat的server.xml配置文件中的context属性(当时为了让域名能够直接访问到项目加的context),
    增加name属性,并命名为项目名称。

    参考文章:https://blog.csdn.net/lmmzsn/article/details/77988716

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog