log4j2到电锯的hello world不工作...我究竟做错了什么?(log4j2 to cha

2019-09-02 11:15发布

我试图流基本的Hello World日志消息从log4j2电锯露面。 我不在乎,如果它使用“零配置”与否,我只是想一些作品。 我知道,因为它们显示控制台上我的测试程序日志消息,我知道这是我找到的配置文件,因为我可以改变这种状况得到印在控制台中的消息的格式,但这是我所知道的。

(含各种失败的猜测),我的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration advertiser="org.apache.logging.log4j.core.net.MulticastDNSAdvertiser">
  <appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %m%n"/>
    </Console>
    <File name="testFile" fileName="logs/test.log" bufferedIO="false" advertiseURI="file://localhost/home/matt/code/ade/logs/test.log" advertise="true">
      <XMLLayout />
    </File>
    <SocketAppender name="socketTest" host="localhost" immediateFlush="true" port="4560" protocol="TCP" advertiseURI="http://localhost" advertise="true">
      <XMLLayout />
    </SocketAppender>
  </appenders>
  <loggers>
    <root level="TRACE">
      <appender-ref ref="Console"/>
      <appender-ref ref="testFile"/>
      <appender-ref ref="socketTest"/>
    </root>
  </loggers>
</configuration>

我已经试过的各种组合:包括在classpath jmdns.jar,在不同的点重新启动电锯,并感到沮丧,但没有任何帮助。

有任何想法吗?

编辑:我想通了,为什么它不能读取日志文件,我保存到磁盘,(我没有被使用XMLLayout),所以我已经更新的问题,以反映我现在只需要获取流工作。

Answer 1:

“广告客户”使用log4j2插件机制,因此您必须提供在配置上的广告商定义的“名字” - 不是完全限定类名。

该log4j2发布机制目前支持FileAppenders和SocketAppenders的广告。 然而,电锯只支持其标榜具有的PatternLayout log4j2 FileAppenders的发现。 XMLLayout支持将在不久的将来出现。

电锯的最新开发快照必须以杠杆log4j2的广告机构一起使用。 电锯压缩包和DMG提供: http://people.apache.org/~sdeboy/

电锯将发现播发fileappender配置和解析(和尾,如果你获得最新的电锯开发版本)日志文件 - 无需电锯配置。

请注意,您需要使用的PatternLayout和JMDNS必须使用该附加器配置的应用程序的classpath。

下面是一个例子Log4j2 -appender-配置,将通告fileappender配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration advertiser="multicastdns">
    <appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %m%n"/>
        </Console>
        <File name="testFile" fileName="logs/test.log" bufferedIO="false" advertiseURI="file:///localhost/home/matt/code/ade/logs/test.log" advertise="true">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %m%n"/>
        </File>
    </appenders>
    <loggers>
        <root level="TRACE">
            <appender-ref ref="Console"/>
            <appender-ref ref="testFile"/>
        </root>
    </loggers>
</configuration>

一旦你已经开始正在使用的appender配置您的应用程序,打开电锯的“零配置”选项卡。

您应该看到您的appender的名字行(假设你使用fileappender配置添加jmdns到classpath中的应用)。

您可以点击“自动连接”,如果你想一直电锯开始使用此配置(如果可用)。

接下来,该行与附加目的地名称双击和电锯将开始分析和拖尾您的日志文件。

在文件中添加器配置中提供的广告的URL必须是可访问的网络,明智的电锯(看起来你是在本地用电锯和你fileappender,因此文件工作:///路径将正常工作 - 注意三个斜杠)。

方括号,破折号等,只要该字符将不会出现在你划定场 - 如果有周围的每个字段的分隔符电锯将是最好的。



文章来源: log4j2 to chainsaw hello world not working… what am I doing wrong?