我可以修改 Geode 的默认日志记录行为吗?

Can I modify Geode's default logging behavior?

Geode 开箱即用的日志记录行为不包括每行记录器的 "name"(通常是 class 调用 Log4j Logger 的名称) .我想将此字段添加到默认记录器配置,即记录到 <member-name>/<member-name>.log.

的配置

使用 instructions from the documentation,我能够使用下面的配置成功配置一个 附加 记录器——它写入一个与默认文件不同的文件(logs/app.log 在这种情况下),但默认配置 仍然正常记录到默认文件。

我的期望是提供我自己的 log4j2.xml 覆盖 默认配置,而不是补充它。我能做些什么来覆盖默认记录器的行为吗?

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="FATAL" shutdownHook="disable" packages="org.apache.geode.internal.logging.log4j">
    <Properties>
        <Property name="geode-pattern">[%level{lowerCase=true} %date{yyyy/MM/dd HH:mm:ss.SSS z} &lt;%thread&gt; tid=%tid] - %c - %message%n%throwable%n</Property>
        <Property name="geode-default">true</Property>
    </Properties>
    <Appenders>
        <File name="MyFile" fileName="logs/app.log">
            <PatternLayout pattern="${geode-pattern}"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="MyFile"/>
        </Root>
    </Loggers>
</Configuration>

我没有看到你的配置有什么问题,实际上我只是在本地试了一下,成员只登录到配置文件而不是默认文件:

$> gfsh start locator --name=locator1 --J=-Dlog4j.configurationFile=$CURRENT_DIRECTORY/log4j-custom.xml
$> gfsh -e "connect" -e "start server --name=server1 --J=-Dlog4j.configurationFile=$CURRENT_DIRECTORY/log4j-custom.xml"

$> gfsh -e "connect" -e "shutdown --include-locators=true"

$> tree -L 3
.
├── gfsh-0_0.log
├── locator1
│   ├── ConfigDiskDir_locator1
│   │   ├── BACKUPcluster_config.if
│   │   ├── BACKUPcluster_config_1.crf
│   │   ├── BACKUPcluster_config_1.drf
│   │   └── DRLK_IFcluster_config.lk
│   ├── GemFire_user
│   │   └── services
│   ├── locator10334view.dat
│   ├── locator10334views.log
│   ├── logs
│   │   └── app.log
│   └── vf.gf.locator.pid
├── log4j-custom.xml
└── server1
    ├── logs
    │   └── app.log
    └── vf.gf.server.pid

我试过最新版本,GemFire 9.9.1,也许你用的是旧版本?你能试试最新版本吗?