禁用来自 ActiveMQ Java 客户端的日志记录

Disable logging from ActiveMQ Java client

我设置了 ActiveMQ,并使用 Java 向它发送消息。这是一个简单的尝试,没什么特别的(顺便说一句,我可能做错了,解释了所有的系统输出,以前从未使用过 ActiveMQ)。我循环并向队列发送 10k 条消息,但它在控制台中记录每一次发送,如下所示:

DEBUG 12 Mar 2021 11:28:45 main - [org.apache.activemq.thread.TaskRunnerFactory]:98 - Initialized TaskRunnerFactory[ActiveMQ Session Task] using ExecutorService: java.util.concurrent.ThreadPoolExecutor@5622fdf[Running, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0]
DEBUG 12 Mar 2021 11:28:45 main - [org.apache.activemq.transport.WireFormatNegotiator]:82 - Sending: WireFormatInfo { version=12, properties={StackTraceEnabled=true, PlatformDetails=Java, CacheEnabled=true, Host=XXXXXXXXXXX, TcpNoDelayEnabled=true, SizePrefixDisabled=false, CacheSize=1024, ProviderName=ActiveMQ, TightEncodingEnabled=true, MaxFrameSize=9223372036854775807, MaxInactivityDuration=30000, MaxInactivityDurationInitalDelay=10000, ProviderVersion=5.16.1}, magic=[A,c,t,i,v,e,M,Q]}
DEBUG 12 Mar 2021 11:28:45 ActiveMQ Transport: XXXXXXXXXXXXX - [org.apache.activemq.transport.InactivityMonitor]:103 - Using min of local: WireFormatInfo { version=12, properties={StackTraceEnabled=true, PlatformDetails=Java, CacheEnabled=true, Host=XXXXXXXXXXXXXXXXXXXXXXXXX, TcpNoDelayEnabled=true, SizePrefixDisabled=false, CacheSize=1024, ProviderName=ActiveMQ, TightEncodingEnabled=true, MaxFrameSize=9223372036854775807, MaxInactivityDuration=30000, MaxInactivityDurationInitalDelay=10000, ProviderVersion=5.16.1}, magic=[A,c,t,i,v,e,M,Q]} and remote: WireFormatInfo { version=12, properties={TcpNoDelayEnabled=true, SizePrefixDisabled=false, CacheSize=1024, ProviderName=ActiveMQ, StackTraceEnabled=true, PlatformDetails=Java, CacheEnabled=true, TightEncodingEnabled=true, MaxFrameSize=104857600, MaxInactivityDuration=30000, MaxInactivityDurationInitalDelay=10000, ProviderVersion=5.16.1}, magic=[A,c,t,i,v,e,M,Q]}
DEBUG 12 Mar 2021 11:28:45 ActiveMQ Transport: XXXXXXXXXXXXX - [org.apache.activemq.transport.WireFormatNegotiator]:130 - Received WireFormat: WireFormatInfo { version=12, properties={TcpNoDelayEnabled=true, SizePrefixDisabled=false, CacheSize=1024, ProviderName=ActiveMQ, StackTraceEnabled=true, PlatformDetails=Java, CacheEnabled=true, TightEncodingEnabled=true, MaxFrameSize=104857600, MaxInactivityDuration=30000, MaxInactivityDurationInitalDelay=10000, ProviderVersion=5.16.1}, magic=[A,c,t,i,v,e,M,Q]}
DEBUG 12 Mar 2021 11:28:45 ActiveMQ Transport: XXXXXXXXXXXXX - [org.apache.activemq.transport.WireFormatNegotiator]:137 - XXXXXXXXXXXXX before negotiation: OpenWireFormat{version=12, cacheEnabled=false, stackTraceEnabled=false, tightEncodingEnabled=false, sizePrefixDisabled=false, maxFrameSize=9223372036854775807}

我该如何禁用它,因为它记录了太多日志,导致发送速度非常慢?

我想我应该能够将日志记录级别更改为高于 DEBUG 的水平,例如 WARN?是服务器端还是客户端?如果我是对的,文件在哪里?

由于您的记录器配置,正在记录这些消息。确认您没有设置全局 DEBUG 级别。

我没有用于 log4j 配置的文件,所以我在 /src/main/resources 下创建了一个文件并使用了这个配置:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="false"
    xmlns:log4j='http://jakarta.apache.org/log4j/'>

<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%5p %d{yyyy.MM.dd_HH:mm:ss} - vdf-loader - (%t) [%c]:%L - %m\n" />
    </layout>
</appender>

<appender name="file" class="org.apache.log4j.FileAppender">
    <param name="File" value="D:\PATH\TO\YOUR\LOGS\vdf-loader.log" />
    <param name="Append" value="false" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%5p %d{yyyy.MM.dd_HH:mm:ss} - vdf-loader - (%t) [%c]:%L - %m\n" />
    </layout>
</appender>

<--! configuration of ActiveMQ here -->
<category name="org.apache.activemq">
    <priority value="INFO" />
</category>

// more categories...

<root>
    <level value="INFO" />
    <appender-ref ref="console" />
    <appender-ref ref="file" />
</root>

</log4j:configuration>