当前位置: 首页 > 知识库问答 >
问题:

如何在应用程序中过滤RabbitMQ控制台侦听消息

洪成济
2023-03-14

我使用spring amqp和rabbitmq在我的应用程序中交换消息。一旦我的应用程序启动,我将在我的tomcat控制台中不断看到大量的消息监听日志。我想禁用。怎么做?

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

# 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

需要添加任何配置吗?

编辑帖子:

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

    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.

我的项目结构如下所示。

项目结构

下面是我的网站。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>

共有2个答案

唐俊爽
2023-03-14

上述答案解决了您的问题,但如果您使用yaml文件将项目配置为应用程序。yml,然后您可以在应用程序中设置此配置。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
蒋奕
2023-03-14

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

使用-Dlog4j运行。debug=true查看正在使用哪个配置文件。

编辑

添加

    <priority value="warn" />

    <priority value="info" />

到你的

 类似资料:
  • 问题内容: 现在,我正在开发类似于bash的命令行应用程序。为了实现自动完成功能,我必须知道用户已经按下Tab键。但是我不知道如何在控制台应用程序中监听键盘事件。 有任何想法吗?提前致谢。 问题答案: 这比看起来要复杂一些。 也许您应该看一下为您处理所有事情的jline项目。

  • 我有一个Java程序,它向RabbitMQ发送消息。我只知道交易所的名字。没有队列、绑定等。 我的问题是:我如何才能看到程序是否成功发送这些,只知道交换名称? 谢谢 问候,塞班

  • 我在Spring消息中使用Stomp over SockJS。我正在尝试在连接新用户时向所有登录用户发送消息。首先,这是我的听众: 我的WebSocket配置 我的JS配置 我在这里的问题是,我的template.convert和发送()在应用程序监听器中不工作。但是,如果我把它放在一个带有@Message映射注释的Controller方法中,它将工作,并且我将有一个控制台日志客户端。 所以我的问

  • 问题内容: 我的应用程序中有一个通知表的Firebase 事件侦听器,当该应用程序在后台时,我想触发推送通知。 这是监听器: 当应用程序位于前台时,这非常有用。然后,在我的应用程序委托方法中添加一个后台观察器,以在后台对其进行观察: 但是当应用程序在后台运行时,事件观察器不会触发。Ive调查了Firebase Cloud Messenger以解决此问题,并遇到了类似这样的帖子: 是否可以使用Fir

  • 我见过其他帖子问同样的问题,答案都提到一个巨大的按钮,上面写着“Unpublish”,现在已经不存在了(至少在2016年)。 如何真正取消发布上传到Google Play开发者控制台的应用程序?

  • 如何为控制台窗体应用程序创建exe?