关于日志的神奇问题

2021-01-26 09:59:34 +08:00
 liangwc

问题描述:

线上用的 jetty 服务器,版本升级后,其中一共三台服务器( A 、B 、C ),A 服务正常打印日志,而 B 、C 服务器升级后日志不打印了(img-server.log),只有在启动时会打印出一些 zookeeper 的信息。用的同一个 war 包,同样的 jetty 配置,都是 jetty 集成了 log4j 的方式。 项目中的 log4j.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
    <appender name="A1" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="Threshold" value="INFO" />
        <param name="encoding" value="UTF-8" />
        <param name="DatePattern" value="'.'yyyyMMdd" />
        <param name="File" value="/x/x/x/img-server.log" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %p [%x,%t] - [%c] - [%m]%n" />
        </layout>
    </appender>
    <appender name="E1" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="Threshold" value="ERROR" />
        <param name="encoding" value="UTF-8" />
        <param name="DatePattern" value="'.'yyyyMMdd" />
        <param name="File" value="/x/x/x/img-error.log" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %p [%x,%t] - [%c] - [%m]%n" />
        </layout>
    </appender>
    <logger name="com.x.x.service.impl.TmpQueueImpl" additivity="false">
        <level value="DEBUG" />
        <appender-ref ref="CA" />
    </logger>
    <logger name="com.x.x.service.impl.TmpImageServiceImpl" additivity="false">
        <level value="DEBUG" />
        <appender-ref ref="CA" />
    </logger>
    <logger name="com.x.x.process.impl.GMTool" additivity="false">
        <level value="DEBUG" />
        <appender-ref ref="CA" />
    </logger>
    <root>
        <level value="INFO" />
        <appender-ref ref="CA" />
        <appender-ref ref="E1" />
        <appender-ref ref="A1" />
    </root>
</log4j:configuration>

并且配置了${jetty_home}/etc/jetty-logging.xml

<Configure id="Server" class="org.eclipse.jetty.server.Server">
    <New id="ServerLog" class="java.io.PrintStream">
      <Arg>
        <New class="org.eclipse.jetty.util.RolloverFileOutputStream">
            <Arg><Property name="jetty.logs" default="/x/x/x"/>/yyyy_mm_dd.jetty-error.log</Arg>
          <Arg type="boolean">false</Arg>
          <Arg type="int">90</Arg>
          <Arg><Call class="java.util.TimeZone" name="getTimeZone"><Arg>GMT</Arg></Call></Arg>
          <Get id="ServerLogName" name="datedFilename"/>
        </New>
      </Arg>
    </New>

    <Call class="org.eclipse.jetty.util.log.Log" name="info"><Arg>Redirecting stderr/stdout to <Ref id="ServerLogName"/></Arg></Call>
    <Call class="java.lang.System" name="setErr"><Arg><Ref id="ServerLog"/></Arg></Call>
    <Call class="java.lang.System" name="setOut"><Arg><Ref id="ServerLog"/></Arg></Call>

</Configure>

然后输出的这个yyyy_mm_dd.jetty-error.log日志文件在 B 、C 两台服务器上出现大量的 debug 日志,而 A 服务器没有。

v2 这么多大佬,请问有遇到这样的问题吗?

1287 次点击
所在节点    程序员
1 条回复
liangwc
2021-01-26 10:09:40 +08:00
还有就是服务是正常的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/748387

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX