首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >log4j2-gelf "ERROR StatusLogger appenders包含无效的元素或属性"GELF“”

log4j2-gelf "ERROR StatusLogger appenders包含无效的元素或属性"GELF“”
EN

Stack Overflow用户
提问于 2014-10-21 23:03:55
回答 2查看 7.6K关注 0票数 6

刚开始接触Graylog2,想通过GELF输入记录一些Java应用程序。因此,我使用库log4j2并添加了graylog2-gelfclient。所有依赖项都已满足,并且程序员正在运行。但是我的Logmanager的初始化抛出了以下错误:

代码语言:javascript
复制
ERROR StatusLogger appenders contains an invalid element or attribute "GELF"

我的代码只是将一个错误记录到记录器中:

代码语言:javascript
复制
static final Logger logger = LogManager.getLogger(Application.class); 
    public static void main(String[] args) {
        logger.error("This is an error log entry");
    }
}

我的log4j2.xml文件被配置为使用GELF和GelfAppender:

代码语言:javascript
复制
<configuration status="OFF">
    <appenders>
        <GELF name="gelfAppender" server="192.168.1.1" port="12201" hostName="myhost"/>
    </appenders>
    <loggers>
        <root level="info">
            <appender-ref ref="gelfAppender"/>
        </root>
    </loggers>
</configuration>

有人熟悉这个问题吗?谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2014-10-22 23:12:49

这听起来像是依赖项出现了问题,或者log4j在加载或初始化GELF附加器插件时遇到了其他问题。提到你对log4j2和log4j2-gelf的确切依赖可能是个好主意。(否则我们不得不猜测...)

此外,尝试使用将状态输出设置为跟踪

代码语言:javascript
复制
<configuration status="trace" ...

并查看控制台上显示的log4j内部日志消息。这应该会让你对哪里出了问题有了一些了解。希望在该输出中有一个明确的错误级别消息,告诉我们问题是什么。

票数 4
EN

Stack Overflow用户

发布于 2014-10-23 17:23:29

只是设法解决了这个问题:)

首先,我将包的名称放入log4j2.xml文件中。

代码语言:javascript
复制
<configuration status="OFF" packages="org.graylog2.log4j2">
   <appenders>
      <GELF name="gelfAppender" server="192.168.1.1" port="12202" hostName="myhost"></GELF>
   </appenders>
   <loggers>
      <root level="info">
         <AppenderRef ref="gelfAppender"/>
      </root>
   </loggers>

然后我得到了这个错误:“这段代码永远不应该进入slf4j-api.jar”

我一开始并没有使用Maven来获取所有需要的包。所以我使用了Maven,这给了我一个提示,导入的slf4j-api .java-files不是预期的文件。如果您下载官方的SLF4J发行版,请小心您导入的文件。首先,我从文件夹"slf4j-api“导入了java文件-但是这个文件夹包含了导致我上面提到的错误的"impl”文件夹。所以我导入了sl4j-api-1.7.7.jar,它也在官方的SLF4J发行版中(这个jar没有包含"impl"-package),现在它工作得很好。

注意:我在运行该程序时收到以下消息:

代码语言:javascript
复制
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26489942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档