如何将日志记录写入Graylog服务器

时间:2019-07-11 11:47:04

标签: logging log4j2 appender rollingfileappender graylog

我在log4j文件中有graylog附加程序。我还有很多其他appender,它们是在log4j文件中进行graylog集成之前定义的。

我想在运行项目时将之前定义的日志记录写入graylog。因此,如果存在AppenderRef

,会将其他日志记录添加到灰色日志中

我的log4j配置应该如何

<?xml version="1.0" encoding="UTF-8"?>
<Configuration packages="org.graylog2.log4j2" xmlns="http://logging.apache.org/log4j/2.x/config">
  <Properties>
    <Property name="filePath">${sys:thy.appdir}/paymentGateway/log
  </Property>
  </Properties>
  <Appenders>
    <GELF hostname="graylog.test.com" includeThreadContext="true" name="gelfAppender" port="12212" protocol="UDP" server="graylog.test.com">
      <KeyValuePair key="grayloggroup" value="Project_Name"/>
      <KeyValuePair key="application" value="App_Key"/>
      <PatternLayout pattern="%m%n"/>
    </GELF>
    <Console name="STDOUT" target="SYSTEM_OUT">
      <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
    </Console>
    <RollingFile fileName="${filePath}/xFileAppender.out" filePattern="${filePath}/xFileAppender-%d{MM-dd-yyyy}-%i.log.gz" name="xFileAppender">
      <PatternLayout>
        <Pattern>%d - %m%n</Pattern>
      </PatternLayout>
      <DefaultRolloverStrategy max="2"/>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Logger level="info" name="grayLogger">
      <AppenderRef ref="gelfAppender"/>
    </Logger>
    <Logger level="debug" name="xLogger">
      <AppenderRef ref="xFileAppender,gelfAppender"/>
    </Logger>
    <Root level="debug">
      <AppenderRef ref="rootAppender"/>
    </Root>
  </Loggers>
</Configuration>

我在xFileAppender中分配了引用gelfAppender以便同时将日志写入Graylog

<Logger name="xLogger" level="debug">
  <AppenderRef ref="xFileAppender,gelfAppender" />
</Logger>

1 个答案:

答案 0 :(得分:1)

以下是在Logger中定义多个追加器引用的正确方法-

<Logger name="xLogger" level="debug">
  <AppenderRef ref="xFileAppender" />
  <AppenderRef ref="gelfAppender" />
</Logger>