1

我正在尝试让命名记录器与 Akka 和 Logback 一起工作。

我的 logback.xml 看起来像这样:

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%-5level [%logger{36}] - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="Gregs.Admin.I" level="INFO" />
    <logger name="Gregs.Admin.D" level="DEBUG" />
    <logger name="Gregs.Admin.E" level="ERROR" />

    <root level="debug">
            <appender-ref ref="STDOUT" />
    </root>
</configuration>

...我的 application.conf (相关剪辑)如下所示:

akka {
    loglevel = "ERROR"
    stdout-loglevel = "ERROR"
    loggers = ["akka.event.slf4j.Slf4jLogger"]
}

我得到了我期望的日志,但在我的格式中的任何地方都看不到我的“Gregs.Admin.x”名称。我得到这样的东西:

ERROR [akka.remote.EndpointWriter] - AssociationError [akka.tcp://AWECluster@10.154.147.189:9010] -> [akka.tcp://AWECluster@10.154.147.189:9011]: Error [Association failed with [akka.tcp://AWECluster@10.154.147.189:9011]] [
akka.remote.EndpointAssociationException: Association failed with [akka.tcp://AWECluster@10.154.147.189:9011]
Caused by: akka.remote.transport.netty.NettyTransport$$anonfun$associate$1$$anon$2: Connection refused: /10.154.147.189:9011
]

所以我得到“akka.remote.EndpointWriter”而不是我想要的记录器名称。

这很重要,因为我的真实应用程序是多节点分布式的,所以我需要一些方法来区分来自聚合日志文件中不同节点的消息,我希望通过在不同节点上设置不同的记录器名称来做到这一点。

4

0 回答 0