gpt4 book ai didi

java - 删除文件附加程序后,Log4j2 不会登录到服务器

转载 作者:行者123 更新时间:2023-11-29 08:40:54 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,我不明白:

当我删除我的 File appender 时,它会阻止我登录到我的服务器,即使 File appender 不应该负责将任何内容记录到服务器;该任务只适用于我的 GELF appender。

下面的代码能够很好地登录到我的控制台和服务器

Java

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class App {
private static final Logger log4j = LogManager.getLogger(App.class.getName());

public static void main(String[] args) {
log4j.info("This is my info message");
log4j.warn("This is my warning message");
log4j.error("This is my error message");
log4j.fatal("This is my fatal message");
}
}

XML

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">

<Properties>
<Property name="default_pattern">%d{MM/dd/yyyy hh:mm:ss} %5p %c{1} - %m%n </Property>
</Properties>
<Appenders>
<Console name="console">
<PatternLayout pattern="${default_pattern}" />
<Filters>
<!-- Exclude messages logged above INFO -->
<ThresholdFilter level="WARN" onMatch="DENY"
onMismatch="NEUTRAL" />
</Filters>
</Console>

<File name="everything" fileName="everything.log"> <!--trying to remove this-->
<PatternLayout pattern="${default_pattern}" />
</File>

<GELF name="gelfAppender" server="graylog.x.something.com"
hostName="some.host" port="12201">
<PatternLayout pattern="${default_pattern}" />
<KeyValuePair key="extractStacktrace" value="true" />
<KeyValuePair key="addExtendedInformation" value="true" />
<KeyValuePair key="facility" value="gelf-java" />
<KeyValuePair key="environment" value="Test" />
<KeyValuePair key="application" value="MyApp" />
<KeyValuePair key="additionalFields" value="{'environment': 'Test', 'application': 'MyAPP'}" />
</GELF>

</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="console" level="info" />
<AppenderRef ref="everything" /><!--and trying to remove this-->
<AppenderRef ref="gelfAppender" level="info" />
</Root>
</Loggers>
</Configuration>

但是,当我删除它时

<File name="everything" fileName="everything.log">
<PatternLayout pattern="${default_pattern}" />
</File>

<AppenderRef ref="everything" />

它不再向我的服务器记录任何内容。

File appender 和 logger 不应该只记录到文件而不是服务器吗?如果是这样,为什么删除文件记录器和附加器会阻止我登录到服务器?

最佳答案

您尝试过在 Log4j 中使用 GelfLayout 吗?

http://logging.apache.org/log4j/2.x/manual/layouts.html#GELFLayout

关于java - 删除文件附加程序后,Log4j2 不会登录到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40315123/

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