gpt4 book ai didi

java - Log4j2 中的 Socket Appender 出现错误

转载 作者:行者123 更新时间:2023-12-01 12:25:37 29 4
gpt4 key购买 nike

我正在尝试在使用 log4j2 进行日志记录的项目中使用 SocketAppender。当我添加 Socket 的配置并部署应用程序时,它会引发解析错误。以下是详细信息。

log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO" strict="true" packages="">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />

</Console>
<Socket name="Socket1" host="localhost" port="4712" reconnectionDelay="5000">
<SerializedLayout/>
</Socket>
</Appenders>

<Loggers>
<Logger name="com.example.web" level="INFO">
<AppenderRef ref="Socket1"/>
</Logger>
<Root level="DEBUG">
<AppenderRef ref="Console" level="DEBUG" />
</Root>

</Loggers>
</Configuration>

POM.XML:

<!-- Logging with SLF4J & LogBack -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.0-rc1</version>
</dependency>

在 Tomcat 中部署项目时出现异常:

log4j:WARN Fatal parsing error 31 and column 6
log4j:WARN Premature end of file.
log4j:ERROR Could not parse url [file:/apps/work/Catalina/example/loader/log4j.xml].
org.xml.sax.SAXParseException: Premature end of file.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:249)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse (DocumentBuilderImpl.java:284)
at org.apache.log4j.xml.DOMConfigurator$2.parse(DOMConfigurator.java:767)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:866)
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

如果我从 log4j2.xml 中删除与 Socket 相关的更改,它就会起作用。谁能指导一下添加 Socket Appender 的正确方法吗?或者在上面的配置中发现任何问题。

最佳答案

看来您的问题与Log4j2配置文件无关,而是与Spring的Log4j(v1)配置文件(/apps/work/Catalina/example/loader/log4j.xml)有关好像用了。我们可以在堆栈跟踪中看到org.apache.log4j,这显然是Log4j v1(Log4j v2更像org.apache.logging.log4j)。

您可能需要在此处发布您的 Log4j v1 文件 (/apps/work/Catalina/example/loader/log4j.xml),以便在您无法修复时我们可以帮助您此配置文件中的错误语法。

PS:我已经尝试过您的 log4j2.xml 文件,效果很好。您可能需要在 Log4j2 配置文件中将 status="INFO" 替换为 status="trace",以在控制台中获取更多调试信息(例如套接字错误、错误) log4j2 配置,...)

关于java - Log4j2 中的 Socket Appender 出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26362373/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com