【问题标题】:How to filter RabbitMQ console listening messages in the application如何在应用程序中过滤 RabbitMQ 控制台监听消息
【发布时间】:2017-01-03 04:18:17
【问题描述】:

我正在使用 spring-amqp 和 rabbitmq 在我的应用程序中交换消息。 一旦我的应用程序启动,我将继续在我的 tomcat 控制台中看到大量的消息侦听日志。我想禁用。如何做到这一点?

11:01:47.862 [SimpleAsyncTaskExecutor-1] 调试 o.s.a.r.l.BlockingQueueConsumer - 为消费者检索交付: 标签=[{amq.ctag-NzonI8Ja7yjfWuLGLsi4pA=job.queue}],通道=缓存 兔子频道:AMQChannel(amqp://BipUser@10.165.18.29:5672/,1),conn: Proxy@64583ac5 共享兔子连接:SimpleConnection@61e800fb [代表=amqp://BipUser@10.165.18.29:5672/,localPort=57216], 确认模式=自动本地队列大小=0 11:01:47.873 [SimpleAsyncTaskExecutor-1] 调试 o.s.a.r.l.BlockingQueueConsumer - 为消费者检索交付: 标签=[{amq.ctag-NzonI8Ja7yjfWuLGLsi4pA=job.queue}],通道=缓存 兔子频道:AMQChannel(amqp://BipUser@10.165.18.29:5672/,1),conn: Proxy@64583ac5 共享兔子连接:SimpleConnection@61e800fb [代表=amqp://BipUser@10.165.18.29:5672/,localPort=57216], 确认模式=自动本地队列大小=0 11:01:47.888 [SimpleAsyncTaskExecutor-1] 调试 o.s.a.r.l.BlockingQueueConsumer - 为消费者检索交付: 标签=[{amq.ctag-NzonI8Ja7yjfWuLGLsi4pA=job.queue}],通道=缓存 兔子频道:AMQChannel(amqp://BipUser@10.165.18.29:5672/,1),conn: Proxy@64583ac5 共享兔子连接:SimpleConnection@61e800fb [代表=amqp://BipUser@10.165.18.29:5672/,localPort=57216], 确认模式=自动本地队列大小=0 11:01:47.899 [SimpleAsyncTaskExecutor-1] 调试 o.s.a.r.l.BlockingQueueConsumer - 为消费者检索交付: 标签=[{amq.ctag-NzonI8Ja7yjfWuLGLsi4pA=job.queue}],通道=缓存 兔子频道:AMQChannel(amqp://BipUser@10.165.18.29:5672/,1),conn: Proxy@64583ac5 共享兔子连接:SimpleConnection@61e800fb [代表=amqp://BipUser@10.165.18.29:5672/,localPort=57216], 确认模式=自动本地队列大小=0 11:01:47.910 [SimpleAsyncTaskExecutor-1] 调试 o.s.a.r.l.BlockingQueueConsumer - 为消费者检索交付: 标签=[{amq.ctag-NzonI8Ja7yjfWuLGLsi4pA=job.queue}],通道=缓存 兔子频道:AMQChannel(amqp://BipUser@10.165.18.29:5672/,1),conn: Proxy@64583ac5 共享兔子连接:SimpleConnection@61e800fb [代表=amqp://BipUser@10.165.18.29:5672/,localPort=57216], 确认模式=自动本地队列大小=0 11:01:47.921 [SimpleAsyncTaskExecutor-1] 调试 o.s.a.r.l.BlockingQueueConsumer - 为消费者检索交付: 标签=[{amq.ctag-NzonI8Ja7yjfWuLGLsi4pA=job.queue}],通道=缓存 兔子频道:AMQChannel(amqp://BipUser@10.165.18.29:5672/,1),conn: Proxy@64583ac5 共享兔子连接:SimpleConnection@61e800fb [代表=amqp://BipUser@10.165.18.29:5672/,localPort=57216], 确认模式=自动本地队列大小=0 11:01:47.932 [SimpleAsyncTaskExecutor-1] 调试 o.s.a.r.l.BlockingQueueConsumer - 为消费者检索交付: 标签=[{amq.ctag-NzonI8Ja7yjfWuLGLsi4pA=job.queue}],通道=缓存 兔子频道:AMQChannel(amqp://BipUser@10.165.18.29:5672/,1),conn: Proxy@64583ac5 共享兔子连接:SimpleConnection@61e800fb [代表=amqp://BipUser@10.165.18.29:5672/,localPort=57216], 确认模式=自动本地队列大小=0 11:01:47.943 [SimpleAsyncTaskExecutor-1] 调试 o.s.a.r.l.BlockingQueueConsumer - 为消费者检索交付: 标签=[{amq.ctag-NzonI8Ja7yjfWuLGLsi4pA=job.queue}],通道=缓存 兔子频道:AMQChannel(amqp://BipUser@10.165.18.29:5672/,1),conn: Proxy@64583ac5 共享兔子连接:SimpleConnection@61e800fb [代表=amqp://BipUser@10.165.18.29:5672/,localPort=57216], 确认模式=自动本地队列大小=0 11:01:47.954 [SimpleAsyncTaskExecutor-1] 调试 o.s.a.r.l.BlockingQueueConsumer - 为消费者检索交付: 标签=[{amq.ctag-NzonI8Ja7yjfWuLGLsi4pA=job.queue}],通道=缓存 兔子频道:AMQChannel(amqp://BipUser@10.165.18.29:5672/,1),conn: Proxy@64583ac5 共享兔子连接:SimpleConnection@61e800fb [代表=amqp://BipUser@10.165.18.29:5672/,localPort=57216], 确认模式=自动本地队列大小=0 11:01:47.965 [SimpleAsyncTaskExecutor-1] 调试 o.s.a.r.l.BlockingQueueConsumer - 为消费者检索交付: 标签=[{amq.ctag-NzonI8Ja7yjfWuLGLsi4pA=job.queue}],通道=缓存 兔子频道:AMQChannel(amqp://BipUser@10.165.18.29:5672/,1),conn: Proxy@64583ac5 共享兔子连接:SimpleConnection@61e800fb [代表=amqp://BipUser@10.165.18.29:5672/,localPort=57216], 确认模式=自动本地队列大小=0 11:01:47.976 [SimpleAsyncTaskExecutor-1] 调试 o.s.a.r.l.BlockingQueueConsumer - 为消费者检索交付: 标签=[{amq.ctag-NzonI8Ja7yjfWuLGLsi4pA=job.queue}],通道=缓存 兔子频道:AMQChannel(amqp://BipUser@10.165.18.29:5672/,1),conn: Proxy@64583ac5 共享兔子连接:SimpleConnection@61e800fb [代表=amqp://BipUser@10.165.18.29:5672/,localPort=57216], 确认模式=自动本地队列大小=0 11:01:47.987 [SimpleAsyncTaskExecutor-1] 调试 o.s.a.r.l.BlockingQueueConsumer - 为消费者检索交付: 标签=[{amq.ctag-NzonI8Ja7yjfWuLGLsi4pA=job.queue}],通道=缓存 兔子频道:AMQChannel(amqp://BipUser@10.165.18.29:5672/,1),conn: Proxy@64583ac5 共享兔子连接:SimpleConnection@61e800fb [代表=amqp://BipUser@10.165.18.29:5672/,localPort=57216], confirmMode=AUTO 本地队列大小=0

以下是我的 log4j 配置。 尽管我只提到了文件附加程序,但所有侦听器日志都在我的应用程序服务器控制台中打印。

# LOG4J configuration
log4j.rootLogger=WARN

log4j.appender.Appender2=org.apache.log4j.FileAppender
log4j.appender.Appender2.File=C:\\Chandan\\bip.log
log4j.appender.Appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender2.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n

需要添加什么配置吗?

编辑帖子:

我在 JAVA_OPTS 中添加了-Dlog4j.debug=true。 .请在下面找到日志。

    log4j: Trying to find [log4j.xml] using context classloader WebappClassLoader
  context: BIP
  delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@2626b418
.
log4j: Trying to find [log4j.xml] using WebappClassLoader
  context: BIP
  delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@2626b418
 class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader WebappClassLoader
  context: BIP
  delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@2626b418
.
log4j: Using URL [file:/C:/Chandan/SoftwareTools/apache-tomcat-8.0.33-windows-x64/apache-tomcat-8.0.33/webapps/BIP/WEB-INF/classes/log4j.properties] for automatic log4j configuration.
log4j: Reading configuration from URL file:/C:/Chandan/SoftwareTools/apache-tomcat-8.0.33-windows-x64/apache-tomcat-8.0.33/webapps/BIP/WEB-INF/classes/log4j.properties
log4j: Parsing for [root] with value=[file].
log4j: Level token is [file].
log4j: Category root set to DEBUG
log4j: Finished configuring.

我的项目结构如下图。

Project Structure

下面是我的 web.xml 文件配置。

<context-param>
              <param-name>log4jConfigLocation</param-name>
              <param-value>/WEB-INF/config/log4j.xml</param-value>
       </context-param>

       <listener>
              <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
       </listener>

【问题讨论】:

    标签: log4j rabbitmq spring-amqp


    【解决方案1】:

    您可能正在从类路径中获取另一个配置文件,而不是使用您期望的配置文件。

    使用-Dlog4j.debug=true 运行以查看正在使用的配置文件。

    编辑

    添加

        <priority value="warn" />
    

        <priority value="info" />
    

    致您的&lt;root/&gt; 记录器

    【讨论】:

    • 很抱歉提出非常基本的问题。在日志文件中的何处添加行-Dlog4j.debug=true?它会产生什么输出?
    • 这是一个JVM系统属性;需要在启动tomcat的时候添加到命令行;我认为您可以通过设置 JAVA_OPTS 环境变量来做到这一点;例如export JAVA_OPTS=-Dlog4j.debug=true 在启动 tomcat 之前。
    • 您好,Gary,我做了一些更改,现在我可以看到文件是从哪里挑选出来的。请看问题log4j: Category root set to DEBUG 我仍然可以看到很多侦听器消息控制台日志。我的 log4j.properties 文件有什么变化吗?
    • 我已经在 log4j 中设置了优先级值。但仍然在我的控制台上运行侦听器消息。它不起作用。请帮助log4j: Parsing for [root] with value=[WARN]. log4j: Level token is [WARN]. log4j: Category root set to WARN
    • 配置成功!!但它在 tomcat 中不起作用。它在 JBoss 中起作用
    【解决方案2】:

    以上答案解决了您的问题,但如果您使用 yaml 文件将项目配置为 application.yml,则可以在 application.yml 文件中设置此配置。

    logging:
      file: ./log/yourapplication.log 
      pattern:
        console: "%d{HH:mm:ss.SSS} %-5level %logger{36} x-tid=%X{x-tid} - %msg%n"
      level:
        root: DEBUG
        org.springframework.amqp.rabbit.listener: INFO
    

    此配置解决了很多问题,我正在使用其他日志过滤器,例如:

    ch.qos.logback.core: INFO
    org.hibernate: INFO
    com.zaxxer.hikari.pool: DEBUG
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 2011-12-22
      相关资源
      最近更新 更多