title: 消息过滤器示例 date: 2017/12/21

categories: 文档翻译

Logappender Example

RocketMQ logappender provides log4j appender, log4j2 appender and logback appender for bussiness to use, below are config examples.

日志插件管理示例

RocketMQ日志插件管理提供了log4j插件、log4j2插件和logback插件,都可以在业务中使用,以下是如何设置的示例,

log4j

When using log4j properties config file,config as below.

  1. log4j.appender.mq=org.apache.rocketmq.logappender.log4j.RocketmqLog4jAppender
  2. log4j.appender.mq.Tag=yourTag
  3. log4j.appender.mq.Topic=yourLogTopic
  4. log4j.appender.mq.ProducerGroup=yourLogGroup
  5. log4j.appender.mq.NameServerAddress=yourRocketmqNameserverAddress
  6. log4j.appender.mq.layout=org.apache.log4j.PatternLayout
  7. log4j.appender.mq.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-4r [%t] (%F:%L) %-5p

log4j

log4j配置文件如下.

  1. log4j.appender.mq=org.apache.rocketmq.logappender.log4j.RocketmqLog4jAppender
  2. log4j.appender.mq.Tag=yourTag
  3. log4j.appender.mq.Topic=yourLogTopic
  4. log4j.appender.mq.ProducerGroup=yourLogGroup
  5. log4j.appender.mq.NameServerAddress=yourRocketmqNameserverAddress
  6. log4j.appender.mq.layout=org.apache.log4j.PatternLayout
  7. log4j.appender.mq.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-4r [%t] (%F:%L) %-5p

When using log4j xml config file,config it as this and also add a async appender:

  1. <appender name="mqAppender1" class="org.apache.rocketmq.logappender.log4j.RocketmqLog4jAppender">
  2. <param name="Tag" value="yourTag" />
  3. <param name="Topic" value="yourLogTopic" />
  4. <param name="ProducerGroup" value="yourLogGroup" />
  5. <param name="NameServerAddress" value="yourRocketmqNameserverAddress"/>
  6. <layout class="org.apache.log4j.PatternLayout">
  7. <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}-%p %t %c - %m%n" />
  8. </layout>
  9. </appender>
  10. <appender name="mqAsyncAppender1" class="org.apache.log4j.AsyncAppender">
  11. <param name="BufferSize" value="1024" />
  12. <param name="Blocking" value="false" />
  13. <appender-ref ref="mqAppender1"/>
  14. </appender>

使用xml文件配置log4j时,如下配置并添加一个异步插件:

  1. <appender name="mqAppender1" class="org.apache.rocketmq.logappender.log4j.RocketmqLog4jAppender">
  2. <param name="Tag" value="yourTag" />
  3. <param name="Topic" value="yourLogTopic" />
  4. <param name="ProducerGroup" value="yourLogGroup" />
  5. <param name="NameServerAddress" value="yourRocketmqNameserverAddress"/>
  6. <layout class="org.apache.log4j.PatternLayout">
  7. <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}-%p %t %c - %m%n" />
  8. </layout>
  9. </appender>
  10. <appender name="mqAsyncAppender1" class="org.apache.log4j.AsyncAppender">
  11. <param name="BufferSize" value="1024" />
  12. <param name="Blocking" value="false" />
  13. <appender-ref ref="mqAppender1"/>
  14. </appender>

log4j2

When using log4j2,config as this.If you want noneblock,just config an asyncAppender for ref.

  1. <RocketMQ name="rocketmqAppender" producerGroup="yourLogGroup" nameServerAddress="yourRocketmqNameserverAddress"
  2. topic="yourLogTopic" tag="yourTag">
  3. <PatternLayout pattern="%d [%p] hahahah %c %m%n"/>
  4. </RocketMQ>

log4j2

log4j2配置如下。如果你希望隐藏,就配置一个异步插件作为引用。【译者注:有问题】

  1. <RocketMQ name="rocketmqAppender" producerGroup="yourLogGroup" nameServerAddress="yourRocketmqNameserverAddress"
  2. topic="yourLogTopic" tag="yourTag">
  3. <PatternLayout pattern="%d [%p] hahahah %c %m%n"/>
  4. </RocketMQ>

logback

When using logback,an asyncAppender also needed.

  1. <appender name="mqAppender1" class="org.apache.rocketmq.logappender.logback.RocketmqLogbackAppender">
  2. <tag>yourTag</tag>
  3. <topic>yourLogTopic</topic>
  4. <producerGroup>yourLogGroup</producerGroup>
  5. <nameServerAddress>yourRocketmqNameserverAddress</nameServerAddress>
  6. <layout>
  7. <pattern>%date %p %t - %m%n</pattern>
  8. </layout>
  9. </appender>
  10. <appender name="mqAsyncAppender1" class="ch.qos.logback.classic.AsyncAppender">
  11. <queueSize>1024</queueSize>
  12. <discardingThreshold>80</discardingThreshold>
  13. <maxFlushTime>2000</maxFlushTime>
  14. <neverBlock>true</neverBlock>
  15. <appender-ref ref="mqAppender1"/>
  16. </appender>

logback

使用logback,异步插件也是必需的。

  1. <appender name="mqAppender1" class="org.apache.rocketmq.logappender.logback.RocketmqLogbackAppender">
  2. <tag>yourTag</tag>
  3. <topic>yourLogTopic</topic>
  4. <producerGroup>yourLogGroup</producerGroup>
  5. <nameServerAddress>yourRocketmqNameserverAddress</nameServerAddress>
  6. <layout>
  7. <pattern>%date %p %t - %m%n</pattern>
  8. </layout>
  9. </appender>
  10. <appender name="mqAsyncAppender1" class="ch.qos.logback.classic.AsyncAppender">
  11. <queueSize>1024</queueSize>
  12. <discardingThreshold>80</discardingThreshold>
  13. <maxFlushTime>2000</maxFlushTime>
  14. <neverBlock>true</neverBlock>
  15. <appender-ref ref="mqAppender1"/>
  16. </appender>