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

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 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能