首页 > 解决方案 > Log4j2 仅在 4 台服务器中的一台服务器上创建一个 .log 文件

问题描述

我们有四个开发服务器并配置了 FQDN。因此,当我们调用 fqdn 时 - 4 个服务器中的任何一个都为请求提供服务。

我们在这 4 台服务器上部署了相同的应用程序......并且我们使用 Log4j2 进行日志记录。

现在的问题是日志文件只在一台服务器上创建......

假设我们有 4 个服务器,分别命名为 server1、server2、server3 和 server4 - 所以 .log 文件仅在 server1 上创建

以下是 log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug" monitorInterval="30">
<Properties>
    <Property name="basePath">logs</Property>
</Properties>
<Appenders>
    <Console name="Console-Appender" target="SYSTEM_OUT">
        <PatternLayout
            pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{5} - %msg%n">
        </PatternLayout>
    </Console>
    <RollingRandomAccessFile
        name="Rolling-Random-Access-File-Appender"
        fileName="${basePath}/rpt-gen-async.log"
        filePattern="${basePath}/%d{yyyy-MM-dd}/rpt-gen-async.%d{dd-MMM}.file-%i.log">
        <PatternLayout
            pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{5} - %msg%n"
            alwaysWriteExceptions="true"></PatternLayout>
        <Policies>
            <OnStartupTriggeringPolicy></OnStartupTriggeringPolicy>
            <SizeBasedTriggeringPolicy size="20 MB" ></SizeBasedTriggeringPolicy>
            <TimeBasedTriggeringPolicy></TimeBasedTriggeringPolicy>
        </Policies>
        <DefaultRolloverStrategy max="5"></DefaultRolloverStrategy>
    </RollingRandomAccessFile>
</Appenders>
<Loggers>
    
    <AsyncLogger name="com" level="ALL"
        includeLocation="true" additivity="true">
        <AppenderRef ref="Rolling-Random-Access-File-Appender"
            level="ALL"></AppenderRef>
    </AsyncLogger>

    <Root level="ALL" includeLocation="true">
        <AppenderRef ref="Console-Appender" level="ALL"></AppenderRef>
    </Root>
</Loggers>
</Configuration>

现在我想要的是 - 每台服务器都应该有“.log”文件。请帮忙!

标签: log4j2

解决方案


推荐阅读