Logback 接收器 - 无法处理类型类 ReceiverModel 的模型

问题描述 投票:0回答:1

我无法让 Logback ServerSocketReceiver 工作。我运行 Logback 自己的完整示例时遇到完全相同的问题https://logback.qos.ch/manual/receivers.html.

简化

logback.xml

<configuration debug="true">
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[%date]-%msg%n</pattern>
        </encoder>
    </appender>
    <root level="DEBUG">
        <appender-ref ref="CONSOLE" />
    </root>
    <receiver class="ch.qos.logback.classic.net.server.ServerSocketReceiver">
        <port>3331</port>
    </receiver>
</configuration>

套接字服务器甚至从未启动:

ERROR in ch.qos.logback.core.model.processor.DefaultProcessor@76b10754 - Can't handle model of type class ch.qos.logback.classic.model.ReceiverModel  with tag: receiver at line 11

使用此设置完成输出:

20:22:22,951 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.4.11
20:22:22,953 |-INFO in ch.qos.logback.classic.util.ContextInitializer@305fd85d - No custom configurators were discovered as a service.
20:22:22,953 |-INFO in ch.qos.logback.classic.util.ContextInitializer@305fd85d - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator
20:22:22,953 |-INFO in ch.qos.logback.classic.util.ContextInitializer@305fd85d - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator
20:22:22,971 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo]
20:22:22,971 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo]
20:22:22,978 |-INFO in ch.qos.logback.classic.util.ContextInitializer@305fd85d - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 19 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY
20:22:22,978 |-INFO in ch.qos.logback.classic.util.ContextInitializer@305fd85d - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator
20:22:22,978 |-INFO in ch.qos.logback.classic.util.ContextInitializer@305fd85d - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator
20:22:22,979 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
20:22:22,981 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/home/x/Projects/agent-tcp-logging/server/target/classes/logback.xml]
20:22:23,067 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [CONSOLE]
20:22:23,067 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
20:22:23,071 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
20:22:23,080 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to DEBUG
20:22:23,081 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [CONSOLE] to Logger[ROOT]
20:22:23,084 |-ERROR in ch.qos.logback.core.model.processor.DefaultProcessor@76b10754 - Can't handle model of type class ch.qos.logback.classic.model.ReceiverModel  with tag: receiver at line 11
20:22:23,085 |-WARN in ch.qos.logback.core.model.processor.ImplicitModelHandler - Ignoring unknown property [port] in [ch.qos.logback.classic.LoggerContext]
20:22:23,085 |-ERROR in ch.qos.logback.core.model.processor.DefaultProcessor@76b10754 - Can't handle model of type class ch.qos.logback.classic.model.ReceiverModel  with tag: receiver at line 11
20:22:23,085 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@76b10754 - End of configuration.
20:22:23,086 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@71a794e5 - Registering current configuration as safe fallback point
20:22:23,086 |-INFO in ch.qos.logback.classic.util.ContextInitializer@305fd85d - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 108 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY

任何帮助将非常感激。

我尝试了 Java 8、11 和 17。我尝试了 Logback 的多个版本,但更喜欢 1.3.x,因为我在生产中一直使用 Java 8。(最终我会切换到 SSLSocketReceiver/appender)

(Logback 套接字附加器/接收器的附加器端似乎工作得很好。我使用 nc 将测试 SocketAppender 连接到小型套接字服务器(https://linux.die.net/man/1/nc))

当 Logback 初始化时我得到

ERROR in ch.qos.logback.core.model.processor.DefaultProcessor@76b10754 - Can't handle model of type class ch.qos.logback.classic.model.ReceiverModel  with tag: receiver at line 11

我希望 Logback 启动一个套接字服务器来开始侦听端口 3331。

java sockets logback
1个回答
0
投票

如果您使用的是 logback 1.3,那么您需要注意您链接的页面上代码示例的 Canonical (1.3) 选项卡

example


解决方案

<receiver class="ServerSocketReceiver">
    <port>3331</port>
</receiver>

接收者 xml 必须如上所示。

注意:班级是

ServerSocketReceiver
不是
ch.qos.logback.classic.net.server.ServerSocketReceiver

© www.soinside.com 2019 - 2024. All rights reserved.