You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by aa...@apache.org on 2022/11/17 12:04:40 UTC
[rocketmq] branch develop updated: Revert "[ISSUE #5484] Replace Logging Module with Shaded Logback (#5524)" (#5537)
This is an automated email from the ASF dual-hosted git repository.
aaronai pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/develop by this push:
new 506b563f5 Revert "[ISSUE #5484] Replace Logging Module with Shaded Logback (#5524)" (#5537)
506b563f5 is described below
commit 506b563f55b79a9a4f82e230c6b04f9462e1e311
Author: yukon <yu...@apache.org>
AuthorDate: Thu Nov 17 20:04:17 2022 +0800
Revert "[ISSUE #5484] Replace Logging Module with Shaded Logback (#5524)" (#5537)
This reverts commit 809ff6b3e045d6ccd0899f756822b2d7dd65f6c0.
---
.gitignore | 2 +-
WORKSPACE | 5 +-
acl/BUILD.bazel | 2 +-
acl/pom.xml | 26 +-
.../org/apache/rocketmq/acl/common/AclSigner.java | 6 +-
.../org/apache/rocketmq/acl/common/AclUtils.java | 6 +-
.../rocketmq/acl/plain/PlainPermissionManager.java | 6 +-
.../acl/plain/RemoteAddressStrategyFactory.java | 6 +-
.../src/test/resources/logback-test.xml | 22 +-
broker/BUILD.bazel | 6 +-
broker/pom.xml | 22 +-
.../apache/rocketmq/broker/BrokerController.java | 10 +-
.../rocketmq/broker/BrokerPreOnlineService.java | 6 +-
.../org/apache/rocketmq/broker/BrokerStartup.java | 21 +-
.../broker/client/ClientHousekeepingService.java | 6 +-
.../rocketmq/broker/client/ConsumerGroupInfo.java | 6 +-
.../rocketmq/broker/client/ConsumerManager.java | 6 +-
.../client/DefaultConsumerIdsChangeListener.java | 6 +-
.../rocketmq/broker/client/ProducerManager.java | 6 +-
.../rocketmq/broker/client/net/Broker2Client.java | 6 +-
.../client/rebalance/RebalanceLockManager.java | 6 +-
.../broker/controller/ReplicasManager.java | 6 +-
.../broker/dledger/DLedgerRoleChangeHandler.java | 6 +-
.../rocketmq/broker/failover/EscapeBridge.java | 6 +-
.../filter/CommitLogDispatcherCalcBitMap.java | 6 +-
.../broker/filter/ConsumerFilterManager.java | 6 +-
.../broker/filter/ExpressionMessageFilter.java | 6 +-
.../broker/filtersrv/FilterServerManager.java | 6 +-
.../broker/filtersrv/FilterServerUtil.java | 4 +-
.../rocketmq/broker/latency/BrokerFastFailure.java | 6 +-
.../longpolling/LmqPullRequestHoldService.java | 6 +-
.../broker/longpolling/PullRequestHoldService.java | 6 +-
.../broker/metrics/BrokerMetricsManager.java | 6 +-
.../broker/metrics/ConsumerLagCalculator.java | 6 +-
.../broker/offset/ConsumerOffsetManager.java | 6 +-
.../offset/ConsumerOrderInfoLockManager.java | 6 +-
.../broker/offset/ConsumerOrderInfoManager.java | 6 +-
.../apache/rocketmq/broker/out/BrokerOuterAPI.java | 6 +-
.../processor/AbstractSendMessageProcessor.java | 8 +-
.../broker/processor/AckMessageProcessor.java | 6 +-
.../broker/processor/AdminBrokerProcessor.java | 6 +-
.../processor/ChangeInvisibleTimeProcessor.java | 6 +-
.../broker/processor/ClientManageProcessor.java | 6 +-
.../broker/processor/ConsumerManageProcessor.java | 6 +-
.../processor/DefaultPullMessageResultHandler.java | 6 +-
.../broker/processor/EndTransactionProcessor.java | 6 +-
.../broker/processor/ForwardRequestProcessor.java | 6 +-
.../broker/processor/NotificationProcessor.java | 6 +-
.../broker/processor/PeekMessageProcessor.java | 6 +-
.../broker/processor/PollingInfoProcessor.java | 6 +-
.../broker/processor/PopBufferMergeService.java | 6 +-
.../broker/processor/PopMessageProcessor.java | 8 +-
.../broker/processor/PopReviveService.java | 6 +-
.../broker/processor/PullMessageProcessor.java | 6 +-
.../broker/processor/QueryAssignmentProcessor.java | 10 +-
.../broker/processor/QueryMessageProcessor.java | 6 +-
.../broker/processor/ReplyMessageProcessor.java | 6 +-
.../broker/schedule/ScheduleMessageService.java | 6 +-
.../rocketmq/broker/slave/SlaveSynchronize.java | 6 +-
.../subscription/SubscriptionGroupManager.java | 6 +-
.../rocketmq/broker/topic/TopicConfigManager.java | 6 +-
.../topic/TopicQueueMappingCleanService.java | 6 +-
.../broker/topic/TopicQueueMappingManager.java | 6 +-
.../broker/topic/TopicRouteInfoManager.java | 6 +-
.../AbstractTransactionalMessageCheckListener.java | 6 +-
.../TransactionalMessageCheckService.java | 6 +-
.../DefaultTransactionalMessageCheckListener.java | 6 +-
.../queue/TransactionalMessageBridge.java | 6 +-
.../queue/TransactionalMessageServiceImpl.java | 6 +-
.../queue/TransactionalOpBatchService.java | 6 +-
.../org/apache/rocketmq/broker/util/HookUtils.java | 6 +-
.../util/TransactionalMessageServiceImpl.java | 6 +-
.../src/test/resources/logback-test.xml | 24 +-
client/BUILD.bazel | 2 +-
client/pom.xml | 9 -
.../java/org/apache/rocketmq/client/MQHelper.java | 15 +-
.../client/consumer/DefaultLitePullConsumer.java | 6 +-
.../client/consumer/DefaultMQPushConsumer.java | 6 +-
.../consumer/MQPullConsumerScheduleService.java | 6 +-
.../AbstractAllocateMessageQueueStrategy.java | 14 +-
.../rebalance/AllocateMessageQueueAveragely.java | 10 +
.../AllocateMessageQueueAveragelyByCircle.java | 10 +
.../consumer/store/LocalFileOffsetStore.java | 6 +-
.../consumer/store/RemoteBrokerOffsetStore.java | 6 +-
.../client/impl/ClientRemotingProcessor.java | 26 +-
.../apache/rocketmq/client/impl/MQAdminImpl.java | 6 +-
.../rocketmq/client/impl/MQClientAPIImpl.java | 6 +-
.../rocketmq/client/impl/MQClientManager.java | 6 +-
.../ConsumeMessageConcurrentlyService.java | 6 +-
.../consumer/ConsumeMessageOrderlyService.java | 6 +-
.../ConsumeMessagePopConcurrentlyService.java | 6 +-
.../consumer/ConsumeMessagePopOrderlyService.java | 6 +-
.../impl/consumer/DefaultLitePullConsumerImpl.java | 6 +-
.../impl/consumer/DefaultMQPullConsumerImpl.java | 6 +-
.../impl/consumer/DefaultMQPushConsumerImpl.java | 7 +-
.../client/impl/consumer/ProcessQueue.java | 6 +-
.../client/impl/consumer/PullAPIWrapper.java | 6 +-
.../client/impl/consumer/PullMessageService.java | 26 +-
.../client/impl/consumer/RebalanceImpl.java | 6 +-
.../client/impl/consumer/RebalanceService.java | 6 +-
.../client/impl/factory/MQClientInstance.java | 6 +-
.../impl/producer/DefaultMQProducerImpl.java | 6 +-
.../rocketmq/client/latency/MQFaultStrategy.java | 6 +-
.../apache/rocketmq/client/log/ClientLogger.java | 124 ++
.../client/producer/DefaultMQProducer.java | 10 +-
.../client/producer/RequestFutureHolder.java | 6 +-
.../rocketmq/client/stat/ConsumerStatsManager.java | 6 +-
.../client/trace/AsyncTraceDispatcher.java | 7 +-
client/src/main/resources/rmq.client.logback.xml | 52 -
client/src/test/resources/log4j2.xml | 29 +
common/BUILD.bazel | 2 +-
common/pom.xml | 17 +-
.../rocketmq/common/AbstractBrokerRunnable.java | 4 +-
.../org/apache/rocketmq/common/BrokerConfig.java | 6 +-
.../org/apache/rocketmq/common/BrokerIdentity.java | 9 +-
.../org/apache/rocketmq/common/ConfigManager.java | 6 +-
.../java/org/apache/rocketmq/common/MixAll.java | 10 +-
.../org/apache/rocketmq/common/ServiceThread.java | 6 +-
.../apache/rocketmq/common/ThreadFactoryImpl.java | 6 +-
.../java/org/apache/rocketmq/common/UtilAll.java | 8 +-
.../rocketmq/common/compression/Lz4Compressor.java | 6 +-
.../common/compression/ZlibCompressor.java | 6 +-
.../common/compression/ZstdCompressor.java | 6 +-
.../common/namesrv/DefaultTopAddressing.java | 6 +-
.../rocketmq/common/queue/ConcurrentTreeMap.java | 6 +-
.../common/statistics/StatisticsItemPrinter.java | 8 +-
.../rocketmq/common/stats/MomentStatsItem.java | 6 +-
.../rocketmq/common/stats/MomentStatsItemSet.java | 6 +-
.../apache/rocketmq/common/stats/RTStatsItem.java | 8 +-
.../apache/rocketmq/common/stats/StatsItem.java | 17 +-
.../apache/rocketmq/common/stats/StatsItemSet.java | 13 +-
.../rocketmq/common/thread/ThreadPoolMonitor.java | 10 +-
.../apache/rocketmq/common/utils/NetworkUtil.java | 6 +-
.../rocketmq/common/utils/ServiceProvider.java | 8 +-
.../apache/rocketmq/common/utils/ThreadUtils.java | 6 +-
container/BUILD.bazel | 3 +-
container/pom.xml | 7 -
.../apache/rocketmq/container/BrokerContainer.java | 6 +-
.../container/BrokerContainerProcessor.java | 6 +-
.../rocketmq/container/BrokerContainerStartup.java | 27 +-
.../logback/BrokerLogbackConfigurator.java | 152 ++-
container/src/test/resources/rmq.logback-test.xml | 36 -
controller/BUILD.bazel | 3 +-
controller/pom.xml | 7 +-
.../controller/BrokerHousekeepingService.java | 6 +-
.../rocketmq/controller/ControllerManager.java | 6 +-
.../rocketmq/controller/ControllerStartup.java | 20 +-
.../controller/impl/DLedgerController.java | 6 +-
.../impl/DLedgerControllerStateMachine.java | 6 +-
.../impl/DefaultBrokerHeartbeatManager.java | 6 +-
.../impl/manager/ReplicasInfoManager.java | 6 +-
.../processor/ControllerRequestProcessor.java | 6 +-
controller/src/test/resources/logback-test.xml | 33 +
controller/src/test/resources/rmq.logback-test.xml | 36 -
.../conf/logback_broker.xml | 108 +-
.../conf/logback_controller.xml | 16 +-
.../conf/logback_namesrv.xml | 24 +-
.../conf/logback_proxy.xml | 116 +-
.../conf/logback_tools.xml | 16 +-
example/pom.xml | 12 +-
.../rocketmq/example/benchmark/BatchProducer.java | 14 +-
.../rocketmq/example/benchmark/Producer.java | 8 +-
.../example/benchmark/timer/TimerProducer.java | 12 +-
.../rocketmq/example/rpc/AsyncRequestProducer.java | 6 +-
.../rocketmq/example/simple/PopPushConsumer.java | 62 +
filter/BUILD.bazel | 1 +
filter/pom.xml | 2 -
filter/src/test/resources/rmq.logback-test.xml | 36 -
logging/BUILD.bazel | 24 +
{container => logging}/pom.xml | 22 +-
.../rocketmq/logging/InnerLoggerFactory.java | 482 ++++++++
.../apache/rocketmq/logging/InternalLogger.java | 63 +
.../rocketmq/logging/InternalLoggerFactory.java | 100 ++
.../rocketmq/logging/Slf4jLoggerFactory.java | 193 +++
.../apache/rocketmq/logging/inner/Appender.java | 228 ++++
.../org/apache/rocketmq/logging/inner/Layout.java | 35 +-
.../org/apache/rocketmq/logging/inner/Level.java | 152 +++
.../org/apache/rocketmq/logging/inner/Logger.java | 467 ++++++++
.../rocketmq/logging/inner/LoggingBuilder.java | 1231 ++++++++++++++++++++
.../rocketmq/logging/inner/LoggingEvent.java | 124 ++
.../apache/rocketmq/logging/inner/SysLogger.java | 89 ++
.../org/apache/rocketmq/logging/package-info.java | 37 +-
.../apache/rocketmq/logging/BasicLoggerTest.java | 69 ++
.../rocketmq/logging/InnerLoggerFactoryTest.java | 91 ++
.../rocketmq/logging/InternalLoggerTest.java | 68 ++
.../rocketmq/logging/Slf4jLoggerFactoryTest.java | 80 ++
.../rocketmq/logging/inner/AppenderTest.java | 158 +++
.../apache/rocketmq/logging/inner/LayoutTest.java | 52 +
.../apache/rocketmq/logging/inner/LevelTest.java | 31 +-
.../logging/inner/LoggerRepositoryTest.java | 49 +
.../apache/rocketmq/logging/inner/LoggerTest.java | 111 ++
.../rocketmq/logging/inner/LoggingBuilderTest.java | 113 ++
.../logging/inner/MessageFormatterTest.java | 33 +-
logging/src/test/resources/logback_test.xml | 46 +
namesrv/BUILD.bazel | 4 +-
namesrv/pom.xml | 16 +-
.../apache/rocketmq/namesrv/NamesrvController.java | 8 +-
.../apache/rocketmq/namesrv/NamesrvStartup.java | 17 +-
.../rocketmq/namesrv/kvconfig/KVConfigManager.java | 6 +-
.../namesrv/processor/ClientRequestProcessor.java | 6 +-
.../processor/ClusterTestRequestProcessor.java | 6 +-
.../namesrv/processor/DefaultRequestProcessor.java | 6 +-
.../routeinfo/BatchUnregistrationService.java | 6 +-
.../namesrv/routeinfo/RouteInfoManager.java | 6 +-
.../namesrv/processor/RequestProcessorTest.java | 6 +-
.../namesrv/routeinfo/GetRouteInfoBenchmark.java | 12 +-
.../namesrv/routeinfo/RegisterBrokerBenchmark.java | 13 +-
namesrv/src/test/resources/rmq.logback-test.xml | 36 -
openmessaging/pom.xml | 5 +-
.../rocketmq/consumer/LocalMessageCache.java | 8 +-
.../rocketmq/consumer/PullConsumerImpl.java | 8 +-
.../rocketmq/producer/AbstractOMSProducer.java | 3 +
.../rocketmq/producer/ProducerImpl.java | 4 -
.../rocketmq/promise/DefaultPromise.java | 6 +-
.../io/openmessaging/rocketmq/utils/BeanUtils.java | 6 +-
.../src/test/resources/rmq.logback-test.xml | 36 -
pom.xml | 144 ++-
proxy/BUILD.bazel | 4 +-
proxy/pom.xml | 15 +-
.../org/apache/rocketmq/proxy/ProxyStartup.java | 39 +-
.../rocketmq/proxy/config/Configuration.java | 4 +-
.../apache/rocketmq/proxy/config/ProxyConfig.java | 4 +-
.../org/apache/rocketmq/proxy/grpc/GrpcServer.java | 6 +-
.../rocketmq/proxy/grpc/GrpcServerBuilder.java | 6 +-
.../interceptor/GlobalExceptionInterceptor.java | 6 +-
.../proxy/grpc/v2/AbstractMessingActivity.java | 6 +-
.../proxy/grpc/v2/DefaultGrpcMessingActivity.java | 6 +-
.../proxy/grpc/v2/GrpcMessagingApplication.java | 4 +-
.../proxy/grpc/v2/channel/GrpcClientChannel.java | 6 +-
.../proxy/grpc/v2/client/ClientActivity.java | 6 +-
.../proxy/grpc/v2/common/GrpcConverter.java | 6 +-
.../proxy/grpc/v2/common/GrpcValidator.java | 6 +-
.../proxy/grpc/v2/common/ResponseBuilder.java | 6 +-
.../proxy/grpc/v2/common/ResponseWriter.java | 6 +-
.../ReceiveMessageResponseStreamWriter.java | 6 +-
.../proxy/metrics/ProxyMetricsManager.java | 4 +-
.../proxy/processor/ConsumerProcessor.java | 6 +-
.../proxy/processor/ProducerProcessor.java | 6 +-
.../proxy/processor/ReceiptHandleProcessor.java | 4 +-
.../proxy/service/ClusterServiceManager.java | 6 +-
.../proxy/service/channel/ChannelManager.java | 4 +-
.../proxy/service/channel/SimpleChannel.java | 6 +-
.../proxy/service/message/LocalMessageService.java | 4 +-
.../service/metadata/ClusterMetadataService.java | 6 +-
.../proxy/service/mqclient/MQClientAPIExt.java | 6 +-
.../mqclient/ProxyClientRemotingProcessor.java | 6 +-
.../rocketmq/proxy/service/relay/ProxyChannel.java | 6 +-
.../proxy/service/route/TopicRouteService.java | 6 +-
.../transaction/ClusterTransactionService.java | 6 +-
.../transaction/TransactionDataManager.java | 6 +-
.../apache/rocketmq/proxy/ProxyStartupTest.java | 14 +-
.../proxy/common/ReceiptHandleGroupTest.java | 4 +-
.../proxy/config/ConfigurationManagerTest.java | 2 +-
...onfigTest.java => InitConfigAndLoggerTest.java} | 33 +-
.../proxy/grpc/v2/AbstractMessingActivityTest.java | 4 +-
.../rocketmq/proxy/grpc/v2/BaseActivityTest.java | 4 +-
.../grpc/v2/GrpcMessagingApplicationTest.java | 4 +-
.../proxy/processor/BaseProcessorTest.java | 4 +-
.../rocketmq/proxy/service/BaseServiceTest.java | 4 +-
.../service/message/LocalMessageServiceTest.java | 4 +-
.../AbstractTransactionServiceTest.java | 4 +-
.../transaction/TransactionDataManagerTest.java | 4 +-
proxy/src/test/resources/rmq.logback-test.xml | 36 -
remoting/BUILD.bazel | 2 +-
remoting/pom.xml | 5 +-
.../apache/rocketmq/remoting/Configuration.java | 10 +-
.../rocketmq/remoting/common/RemotingHelper.java | 6 +-
.../rocketmq/remoting/common/ServiceThread.java | 6 +-
.../rocketmq/remoting/netty/NettyDecoder.java | 6 +-
.../rocketmq/remoting/netty/NettyEncoder.java | 6 +-
.../rocketmq/remoting/netty/NettyLogger.java | 8 +-
.../remoting/netty/NettyRemotingAbstract.java | 6 +-
.../remoting/netty/NettyRemotingClient.java | 6 +-
.../remoting/netty/NettyRemotingServer.java | 10 +-
.../apache/rocketmq/remoting/netty/TlsHelper.java | 6 +-
.../rocketmq/remoting/protocol/MQProtosHelper.java | 6 +-
.../remoting/protocol/RemotingCommand.java | 6 +-
.../remoting/protocol/body/RegisterBrokerBody.java | 6 +-
.../rocketmq/remoting/rpc/ClientMetadata.java | 6 +-
remoting/src/test/resources/rmq.logback-test.xml | 36 -
srvutil/BUILD.bazel | 2 +-
srvutil/pom.xml | 7 +-
.../rocketmq/srvutil/AclFileWatchService.java | 6 +-
.../apache/rocketmq/srvutil/FileWatchService.java | 6 +-
.../rocketmq/srvutil/ShutdownHookThread.java | 6 +-
.../src/test/java/logback-test.xml | 20 +-
srvutil/src/test/resources/rmq.logback-test.xml | 36 -
store/BUILD.bazel | 6 +-
store/pom.xml | 13 +-
.../rocketmq/store/AllocateMappedFileService.java | 6 +-
.../java/org/apache/rocketmq/store/CommitLog.java | 6 +-
.../org/apache/rocketmq/store/ConsumeQueue.java | 8 +-
.../org/apache/rocketmq/store/ConsumeQueueExt.java | 6 +-
.../apache/rocketmq/store/DefaultMessageStore.java | 6 +-
.../apache/rocketmq/store/FlushDiskWatcher.java | 6 +-
.../org/apache/rocketmq/store/MappedFileQueue.java | 8 +-
.../apache/rocketmq/store/MessageExtEncoder.java | 6 +-
.../org/apache/rocketmq/store/StoreCheckpoint.java | 6 +-
.../apache/rocketmq/store/StoreStatsService.java | 6 +-
.../java/org/apache/rocketmq/store/StoreUtil.java | 6 +-
.../apache/rocketmq/store/TransientStorePool.java | 6 +-
.../apache/rocketmq/store/ha/DefaultHAClient.java | 6 +-
.../rocketmq/store/ha/DefaultHAConnection.java | 6 +-
.../apache/rocketmq/store/ha/DefaultHAService.java | 6 +-
.../rocketmq/store/ha/GroupTransferService.java | 6 +-
.../ha/HAConnectionStateNotificationService.java | 6 +-
.../apache/rocketmq/store/ha/WaitNotifyObject.java | 6 +-
.../store/ha/autoswitch/AutoSwitchHAClient.java | 6 +-
.../ha/autoswitch/AutoSwitchHAConnection.java | 6 +-
.../store/ha/autoswitch/AutoSwitchHAService.java | 6 +-
.../store/ha/autoswitch/EpochFileCache.java | 6 +-
.../rocketmq/store/ha/io/AbstractHAReader.java | 6 +-
.../org/apache/rocketmq/store/ha/io/HAWriter.java | 6 +-
.../org/apache/rocketmq/store/index/IndexFile.java | 6 +-
.../apache/rocketmq/store/index/IndexService.java | 6 +-
.../apache/rocketmq/store/kv/CompactionLog.java | 6 +-
.../rocketmq/store/kv/CompactionService.java | 6 +-
.../apache/rocketmq/store/kv/CompactionStore.java | 6 +-
.../apache/rocketmq/store/kv/MessageFetcher.java | 6 +-
.../rocketmq/store/logfile/DefaultMappedFile.java | 6 +-
.../rocketmq/store/queue/BatchConsumeQueue.java | 6 +-
.../rocketmq/store/queue/ConsumeQueueStore.java | 6 +-
.../rocketmq/store/queue/QueueOffsetAssigner.java | 6 +-
.../apache/rocketmq/store/stats/BrokerStats.java | 6 +-
.../rocketmq/store/stats/BrokerStatsManager.java | 14 +-
.../rocketmq/store/timer/TimerCheckpoint.java | 6 +-
.../org/apache/rocketmq/store/timer/TimerLog.java | 6 +-
.../rocketmq/store/timer/TimerMessageStore.java | 11 +-
.../apache/rocketmq/store/timer/TimerMetrics.java | 6 +-
.../apache/rocketmq/store/timer/TimerWheel.java | 6 +-
.../apache/rocketmq/store/util/PerfCounter.java | 12 +-
.../org/apache/rocketmq/store/StoreTestUtil.java | 6 +-
.../src/test/resources/logback-test.xml | 21 +-
store/src/test/resources/rmq.logback-test.xml | 36 -
test/BUILD.bazel | 9 +-
test/pom.xml | 27 +-
.../rocketmq/test/client/mq/MQAsyncProducer.java | 6 +-
.../test/client/rmq/RMQAsyncSendProducer.java | 5 +-
.../test/client/rmq/RMQBroadCastConsumer.java | 5 +-
.../test/client/rmq/RMQNormalConsumer.java | 5 +-
.../test/client/rmq/RMQNormalProducer.java | 33 +-
.../rocketmq/test/client/rmq/RMQPopConsumer.java | 5 +-
.../rocketmq/test/client/rmq/RMQSqlConsumer.java | 5 +-
.../test/client/rmq/RMQTransactionalProducer.java | 9 +-
.../rocketmq/test/listener/AbstractListener.java | 7 +-
.../listener/rmq/concurrent/RMQNormalListener.java | 2 +-
.../test/listener/rmq/order/RMQOrderListener.java | 2 +-
.../rocketmq/test/lmq/benchmark/BenchLmqStore.java | 4 +-
.../rocketmq/test/util/MQAdminTestUtils.java | 5 +-
.../java/org/apache/rocketmq/test/util/MQWait.java | 6 +-
.../org/apache/rocketmq/test/util/StatUtil.java | 5 +-
.../org/apache/rocketmq/test/util/VerifyUtils.java | 5 +-
.../org/apache/rocketmq/test/base/BaseConf.java | 4 +-
.../rocketmq/test/base/IntegrationTestBase.java | 6 +-
.../balance/NormalMsgDynamicBalanceIT.java | 5 +-
.../consumer/balance/NormalMsgStaticBalanceIT.java | 4 +-
.../client/consumer/broadcast/BaseBroadcast.java | 5 +-
.../normal/BroadcastNormalMsgNotReceiveIT.java | 5 +-
.../normal/BroadcastNormalMsgRecvCrashIT.java | 5 +-
.../normal/BroadcastNormalMsgRecvFailIT.java | 5 +-
.../normal/BroadcastNormalMsgRecvStartLaterIT.java | 5 +-
.../BroadcastNormalMsgTwoDiffGroupRecvIT.java | 5 +-
.../normal/NormalMsgTwoSameGroupConsumerIT.java | 5 +-
.../broadcast/order/OrderMsgBroadcastIT.java | 5 +-
.../tag/BroadcastTwoConsumerFilterIT.java | 5 +-
.../tag/BroadcastTwoConsumerSubDiffTagIT.java | 5 +-
.../tag/BroadcastTwoConsumerSubTagIT.java | 5 +-
.../consumer/cluster/DynamicAddAndCrashIT.java | 5 +-
.../consumer/cluster/DynamicAddConsumerIT.java | 5 +-
.../consumer/cluster/DynamicCrashConsumerIT.java | 5 +-
.../test/client/consumer/filter/SqlFilterIT.java | 5 +-
.../test/client/consumer/pop/PopSubCheckIT.java | 9 +-
.../test/client/consumer/tag/MulTagSubIT.java | 6 +-
.../consumer/tag/TagMessageWith1ConsumerIT.java | 6 +-
.../consumer/tag/TagMessageWithMulConsumerIT.java | 6 +-
.../tag/TagMessageWithSameGroupConsumerIT.java | 5 +-
.../producer/async/AsyncSendExceptionIT.java | 5 +-
.../async/AsyncSendWithMessageQueueIT.java | 5 +-
.../async/AsyncSendWithMessageQueueSelectorIT.java | 5 +-
.../async/AsyncSendWithOnlySendCallBackIT.java | 5 +-
.../test/client/producer/batch/BatchSendIT.java | 5 +-
.../producer/exception/msg/MessageUserPropIT.java | 5 +-
.../ProducerGroupAndInstanceNameValidityIT.java | 5 +-
.../producer/oneway/OneWaySendExceptionIT.java | 5 +-
.../test/client/producer/oneway/OneWaySendIT.java | 5 +-
.../client/producer/oneway/OneWaySendWithMQIT.java | 5 +-
.../producer/oneway/OneWaySendWithSelectorIT.java | 5 +-
.../producer/order/OrderMsgDynamicRebalanceIT.java | 5 +-
.../test/client/producer/order/OrderMsgIT.java | 5 +-
.../client/producer/order/OrderMsgRebalanceIT.java | 5 +-
.../client/producer/order/OrderMsgWithTagIT.java | 5 +-
.../producer/querymsg/QueryMsgByIdExceptionIT.java | 5 +-
.../client/producer/querymsg/QueryMsgByIdIT.java | 5 +-
.../client/producer/querymsg/QueryMsgByKeyIT.java | 5 +-
.../producer/transaction/TransactionalMsgIT.java | 5 +-
.../container/ContainerIntegrationTestBase.java | 19 +-
.../rocketmq/test/delay/NormalMsgDelayIT.java | 5 +-
.../rocketmq/test/offset/OffsetResetForPopIT.java | 5 +-
.../apache/rocketmq/test/offset/OffsetResetIT.java | 5 +-
.../test/smoke/NormalMessageSendAndRecvIT.java | 4 +-
.../rocketmq/test/statictopic/StaticTopicIT.java | 5 +-
test/src/test/resources/log4j.xml | 46 +
test/src/test/resources/logback-test.xml | 33 +
test/src/test/resources/rmq.logback-test.xml | 36 -
tools/BUILD.bazel | 5 +-
tools/pom.xml | 7 +-
.../tools/admin/DefaultMQAdminExtImpl.java | 52 +-
.../rocketmq/tools/command/MQAdminStartup.java | 19 +
.../consumer/ConsumerProgressSubCommand.java | 6 +-
.../consumer/StartMonitoringSubCommand.java | 3 +
.../tools/monitor/DefaultMonitorListener.java | 20 +-
.../rocketmq/tools/monitor/MonitorService.java | 10 +-
.../DeleteExpiredCommitLogSubCommandTest.java | 2 +-
.../tools/command/server/ServerResponseMocker.java | 9 +-
tools/src/test/resources/rmq.logback-test.xml | 36 -
415 files changed, 6156 insertions(+), 1981 deletions(-)
diff --git a/.gitignore b/.gitignore
index c20f4bf76..ad431b361 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,7 +4,7 @@
.settings/
target/
devenv
-*.log.*
+*.log*
*.iml
.idea/
*.versionsBackup
diff --git a/WORKSPACE b/WORKSPACE
index 38e846a32..fe16f04b4 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -43,7 +43,7 @@ maven_install(
"com.alibaba:fastjson:1.2.76",
"org.hamcrest:hamcrest-library:1.3",
"io.netty:netty-all:4.1.65.Final",
- "org.slf4j:slf4j-api:1.7.33",
+ "org.slf4j:slf4j-api:1.7.7",
"org.assertj:assertj-core:3.22.0",
"org.mockito:mockito-core:3.10.0",
"com.github.luben:zstd-jni:1.5.2-2",
@@ -64,6 +64,7 @@ maven_install(
"org.yaml:snakeyaml:1.30",
"commons-codec:commons-codec:1.13",
"commons-io:commons-io:2.7",
+ "log4j:log4j:1.2.17",
"com.google.truth:truth:0.30",
"org.bouncycastle:bcpkix-jdk15on:1.69",
"com.google.code.gson:gson:2.8.9",
@@ -93,8 +94,6 @@ maven_install(
"io.opentelemetry:opentelemetry-api:1.19.0",
"io.opentelemetry:opentelemetry-sdk-metrics:1.19.0",
"io.opentelemetry:opentelemetry-sdk-common:1.19.0",
- "io.github.aliyun-mq:rocketmq-slf4j-api:1.0.1",
- "io.github.aliyun-mq:rocketmq-logback-classic:1.0.1",
],
fetch_sources = True,
repositories = [
diff --git a/acl/BUILD.bazel b/acl/BUILD.bazel
index fd9e45dd6..ca0517db7 100644
--- a/acl/BUILD.bazel
+++ b/acl/BUILD.bazel
@@ -22,6 +22,7 @@ java_library(
visibility = ["//visibility:public"],
deps = [
"//common",
+ "//logging",
"//remoting",
"//srvutil",
"@maven//:com_alibaba_fastjson",
@@ -35,7 +36,6 @@ java_library(
"@maven//:org_apache_rocketmq_rocketmq_proto",
"@maven//:org_lz4_lz4_java",
"@maven//:org_yaml_snakeyaml",
- "@maven//:io_github_aliyun_mq_rocketmq_slf4j_api",
],
)
diff --git a/acl/pom.xml b/acl/pom.xml
index 9a3c12e28..90ce2c8be 100644
--- a/acl/pom.xml
+++ b/acl/pom.xml
@@ -30,25 +30,18 @@
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-remoting</artifactId>
- <version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>rocketmq-common</artifactId>
- <version>${project.version}</version>
+ <artifactId>rocketmq-logging</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>rocketmq-srvutil</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>io.github.aliyun-mq</groupId>
- <artifactId>rocketmq-slf4j-api</artifactId>
+ <artifactId>rocketmq-common</artifactId>
</dependency>
<dependency>
- <groupId>io.github.aliyun-mq</groupId>
- <artifactId>rocketmq-logback-classic</artifactId>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rocketmq-srvutil</artifactId>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
@@ -62,6 +55,17 @@
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
diff --git a/acl/src/main/java/org/apache/rocketmq/acl/common/AclSigner.java b/acl/src/main/java/org/apache/rocketmq/acl/common/AclSigner.java
index 98964cde3..9953cca0f 100644
--- a/acl/src/main/java/org/apache/rocketmq/acl/common/AclSigner.java
+++ b/acl/src/main/java/org/apache/rocketmq/acl/common/AclSigner.java
@@ -22,13 +22,13 @@ import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class AclSigner {
public static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;
public static final SigningAlgorithm DEFAULT_ALGORITHM = SigningAlgorithm.HmacSHA1;
- private static final Logger log = LoggerFactory.getLogger(LoggerName.ROCKETMQ_AUTHORIZE_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.ROCKETMQ_AUTHORIZE_LOGGER_NAME);
private static final int CAL_SIGNATURE_FAILED = 10015;
private static final String CAL_SIGNATURE_FAILED_MSG = "[%s:signature-failed] unable to calculate a request signature. error=%s";
diff --git a/acl/src/main/java/org/apache/rocketmq/acl/common/AclUtils.java b/acl/src/main/java/org/apache/rocketmq/acl/common/AclUtils.java
index 230aba05e..0f31ab8bb 100644
--- a/acl/src/main/java/org/apache/rocketmq/acl/common/AclUtils.java
+++ b/acl/src/main/java/org/apache/rocketmq/acl/common/AclUtils.java
@@ -27,8 +27,8 @@ import java.util.SortedMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
import org.yaml.snakeyaml.Yaml;
@@ -37,7 +37,7 @@ import static org.apache.rocketmq.acl.common.SessionCredentials.CHARSET;
public class AclUtils {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
public static byte[] combineRequestContent(RemotingCommand request, SortedMap<String, String> fieldsMap) {
try {
diff --git a/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainPermissionManager.java b/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainPermissionManager.java
index a506b83fb..b41c34e69 100644
--- a/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainPermissionManager.java
+++ b/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainPermissionManager.java
@@ -45,14 +45,14 @@ import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.PlainAccessConfig;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.topic.TopicValidator;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.DataVersion;
import org.apache.rocketmq.srvutil.AclFileWatchService;
public class PlainPermissionManager {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
private String fileHome = System.getProperty(MixAll.ROCKETMQ_HOME_PROPERTY,
System.getenv(MixAll.ROCKETMQ_HOME_ENV));
diff --git a/acl/src/main/java/org/apache/rocketmq/acl/plain/RemoteAddressStrategyFactory.java b/acl/src/main/java/org/apache/rocketmq/acl/plain/RemoteAddressStrategyFactory.java
index eb3a8c324..f2caf2431 100644
--- a/acl/src/main/java/org/apache/rocketmq/acl/plain/RemoteAddressStrategyFactory.java
+++ b/acl/src/main/java/org/apache/rocketmq/acl/plain/RemoteAddressStrategyFactory.java
@@ -23,12 +23,12 @@ import org.apache.commons.validator.routines.InetAddressValidator;
import org.apache.rocketmq.acl.common.AclException;
import org.apache.rocketmq.acl.common.AclUtils;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class RemoteAddressStrategyFactory {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
public static final NullRemoteAddressStrategy NULL_NET_ADDRESS_STRATEGY = new NullRemoteAddressStrategy();
diff --git a/common/src/test/resources/rmq.logback-test.xml b/acl/src/test/resources/logback-test.xml
similarity index 63%
rename from common/src/test/resources/rmq.logback-test.xml
rename to acl/src/test/resources/logback-test.xml
index c3ec0d1e8..e556c649e 100644
--- a/common/src/test/resources/rmq.logback-test.xml
+++ b/acl/src/test/resources/logback-test.xml
@@ -17,20 +17,18 @@
-->
<configuration>
- <appender name="CONSOLE" class="org.apache.rocketmq.shade.ch.qos.logback.core.ConsoleAppender">
- <layout class="org.apache.rocketmq.shade.ch.qos.logback.classic.PatternLayout">
- <Pattern>
- %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
- </Pattern>
- </layout>
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
+ <charset class="java.nio.charset.Charset">UTF-8</charset>
+ </encoder>
</appender>
- <logger name="org.apache.rocketmq" level="error" additivity="false">
- <appender-ref ref="CONSOLE"/>
+ <logger name="RocketmqCommon" level="INFO" additivity="false">
+ <appender-ref ref="STDOUT"/>
</logger>
-
- <root level="error">
- <appender-ref ref="CONSOLE"/>
+ <root level="INFO">
+ <appender-ref ref="STDOUT"/>
</root>
-</configuration>
\ No newline at end of file
+</configuration>
diff --git a/broker/BUILD.bazel b/broker/BUILD.bazel
index 75addf8bc..ea8dd9046 100644
--- a/broker/BUILD.bazel
+++ b/broker/BUILD.bazel
@@ -25,6 +25,7 @@ java_library(
"//client",
"//common",
"//filter",
+ "//logging",
"//remoting",
"//srvutil",
"//store",
@@ -49,7 +50,6 @@ java_library(
"@maven//:org_apache_commons_commons_lang3",
"@maven//:org_lz4_lz4_java",
"@maven//:org_slf4j_slf4j_api",
- "@maven//:io_github_aliyun_mq_rocketmq_slf4j_api",
],
)
@@ -60,7 +60,7 @@ java_library(
"src/test/resources/META-INF/service/org.apache.rocketmq.acl.AccessValidator",
"src/test/resources/META-INF/service/org.apache.rocketmq.broker.transaction.AbstractTransactionalMessageCheckListener",
"src/test/resources/META-INF/service/org.apache.rocketmq.broker.transaction.TransactionalMessageService",
- "src/test/resources/rmq.logback-test.xml",
+ "src/test/resources/logback-test.xml",
],
visibility = ["//visibility:public"],
deps = [
@@ -70,13 +70,13 @@ java_library(
"//client",
"//common",
"//filter",
+ "//logging",
"//remoting",
"//store",
"@maven//:com_alibaba_fastjson",
"@maven//:com_google_guava_guava",
"@maven//:io_netty_netty_all",
"@maven//:org_apache_commons_commons_lang3",
- "@maven//:io_github_aliyun_mq_rocketmq_slf4j_api",
],
)
diff --git a/broker/pom.xml b/broker/pom.xml
index ae79c64d9..45c8acfc9 100644
--- a/broker/pom.xml
+++ b/broker/pom.xml
@@ -29,45 +29,39 @@
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-remoting</artifactId>
- <version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-store</artifactId>
- <version>${project.version}</version>
</dependency>
<dependency>
- <groupId>io.github.aliyun-mq</groupId>
- <artifactId>rocketmq-slf4j-api</artifactId>
- </dependency>
- <dependency>
- <groupId>io.github.aliyun-mq</groupId>
- <artifactId>rocketmq-logback-classic</artifactId>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rocketmq-remoting</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-client</artifactId>
- <version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-srvutil</artifactId>
- <version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-filter</artifactId>
- <version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-acl</artifactId>
- <version>${project.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ </dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
@@ -76,6 +70,10 @@
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java b/broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java
index e22f1b0a5..787c62dc8 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java
@@ -116,8 +116,8 @@ import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageExtBrokerInner;
import org.apache.rocketmq.common.stats.MomentStatsItem;
import org.apache.rocketmq.common.utils.ServiceProvider;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.Configuration;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.RemotingServer;
@@ -159,9 +159,9 @@ import org.apache.rocketmq.store.timer.TimerMessageStore;
import org.apache.rocketmq.store.timer.TimerMetrics;
public class BrokerController {
- protected static final Logger LOG = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
- private static final Logger LOG_PROTECTION = LoggerFactory.getLogger(LoggerName.PROTECTION_LOGGER_NAME);
- private static final Logger LOG_WATER_MARK = LoggerFactory.getLogger(LoggerName.WATER_MARK_LOGGER_NAME);
+ protected static final InternalLogger LOG = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOG_PROTECTION = InternalLoggerFactory.getLogger(LoggerName.PROTECTION_LOGGER_NAME);
+ private static final InternalLogger LOG_WATER_MARK = InternalLoggerFactory.getLogger(LoggerName.WATER_MARK_LOGGER_NAME);
protected static final int HA_ADDRESS_MIN_LENGTH = 6;
protected final BrokerConfig brokerConfig;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/BrokerPreOnlineService.java b/broker/src/main/java/org/apache/rocketmq/broker/BrokerPreOnlineService.java
index 9916be660..394116930 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/BrokerPreOnlineService.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/BrokerPreOnlineService.java
@@ -29,8 +29,8 @@ import org.apache.rocketmq.broker.schedule.DelayOffsetSerializeWrapper;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.ServiceThread;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.protocol.BrokerSyncInfo;
import org.apache.rocketmq.remoting.protocol.body.BrokerMemberGroup;
@@ -41,7 +41,7 @@ import org.apache.rocketmq.store.ha.HAConnectionStateNotificationRequest;
import org.apache.rocketmq.store.timer.TimerCheckpoint;
public class BrokerPreOnlineService extends ServiceThread {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final BrokerController brokerController;
private int waitBrokerIndex = 0;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java b/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
index f78a5a79c..46cbbf1c8 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
@@ -16,6 +16,8 @@
*/
package org.apache.rocketmq.broker;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.joran.JoranConfigurator;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
@@ -30,20 +32,22 @@ import org.apache.rocketmq.common.MQVersion;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.utils.NetworkUtil;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.netty.NettyClientConfig;
import org.apache.rocketmq.remoting.netty.NettyServerConfig;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
import org.apache.rocketmq.srvutil.ServerUtil;
import org.apache.rocketmq.store.config.BrokerRole;
import org.apache.rocketmq.store.config.MessageStoreConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class BrokerStartup {
public static Properties properties = null;
public static CommandLine commandLine = null;
public static String configFile = null;
- public static Logger log;
+ public static InternalLogger log;
public static final SystemConfigFileHelper CONFIG_FILE_HELPER = new SystemConfigFileHelper();
public static void main(String[] args) {
@@ -165,6 +169,10 @@ public class BrokerStartup {
}
messageStoreConfig.setHaListenPort(nettyServerConfig.getListenPort() + 1);
+ LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
+ JoranConfigurator configurator = new JoranConfigurator();
+ configurator.setContext(lc);
+ lc.reset();
System.setProperty("brokerLogDir", "");
if (brokerConfig.isIsolateLogEnable()) {
System.setProperty("brokerLogDir", brokerConfig.getBrokerName() + "_" + brokerConfig.getBrokerId());
@@ -172,16 +180,17 @@ public class BrokerStartup {
if (brokerConfig.isIsolateLogEnable() && messageStoreConfig.isEnableDLegerCommitLog()) {
System.setProperty("brokerLogDir", brokerConfig.getBrokerName() + "_" + messageStoreConfig.getdLegerSelfId());
}
+ configurator.doConfigure(brokerConfig.getRocketmqHome() + "/conf/logback_broker.xml");
if (commandLine.hasOption('p')) {
- Logger console = LoggerFactory.getLogger(LoggerName.BROKER_CONSOLE_NAME);
+ InternalLogger console = InternalLoggerFactory.getLogger(LoggerName.BROKER_CONSOLE_NAME);
MixAll.printObjectProperties(console, brokerConfig);
MixAll.printObjectProperties(console, nettyServerConfig);
MixAll.printObjectProperties(console, nettyClientConfig);
MixAll.printObjectProperties(console, messageStoreConfig);
System.exit(0);
} else if (commandLine.hasOption('m')) {
- Logger console = LoggerFactory.getLogger(LoggerName.BROKER_CONSOLE_NAME);
+ InternalLogger console = InternalLoggerFactory.getLogger(LoggerName.BROKER_CONSOLE_NAME);
MixAll.printObjectProperties(console, brokerConfig, true);
MixAll.printObjectProperties(console, nettyServerConfig, true);
MixAll.printObjectProperties(console, nettyClientConfig, true);
@@ -189,7 +198,7 @@ public class BrokerStartup {
System.exit(0);
}
- log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
MixAll.printObjectProperties(log, brokerConfig);
MixAll.printObjectProperties(log, nettyServerConfig);
MixAll.printObjectProperties(log, nettyClientConfig);
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/client/ClientHousekeepingService.java b/broker/src/main/java/org/apache/rocketmq/broker/client/ClientHousekeepingService.java
index 98cf6ea19..28f2e92fd 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/client/ClientHousekeepingService.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/client/ClientHousekeepingService.java
@@ -23,12 +23,12 @@ import java.util.concurrent.TimeUnit;
import org.apache.rocketmq.broker.BrokerController;
import org.apache.rocketmq.common.ThreadFactoryImpl;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.ChannelEventListener;
public class ClientHousekeepingService implements ChannelEventListener {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final BrokerController brokerController;
private ScheduledExecutorService scheduledExecutorService;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/client/ConsumerGroupInfo.java b/broker/src/main/java/org/apache/rocketmq/broker/client/ConsumerGroupInfo.java
index c31d952a7..c320d786f 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/client/ConsumerGroupInfo.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/client/ConsumerGroupInfo.java
@@ -26,14 +26,14 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.consumer.ConsumeFromWhere;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.heartbeat.ConsumeType;
import org.apache.rocketmq.remoting.protocol.heartbeat.MessageModel;
import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
public class ConsumerGroupInfo {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final String groupName;
private final ConcurrentMap<String/* Topic */, SubscriptionData> subscriptionTable =
new ConcurrentHashMap<>();
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/client/ConsumerManager.java b/broker/src/main/java/org/apache/rocketmq/broker/client/ConsumerManager.java
index 5412fe744..bf36078e8 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/client/ConsumerManager.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/client/ConsumerManager.java
@@ -28,8 +28,8 @@ import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.consumer.ConsumeFromWhere;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.protocol.heartbeat.ConsumeType;
import org.apache.rocketmq.remoting.protocol.heartbeat.MessageModel;
@@ -37,7 +37,7 @@ import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
import org.apache.rocketmq.store.stats.BrokerStatsManager;
public class ConsumerManager {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private static final long CHANNEL_EXPIRED_TIMEOUT = 1000 * 120;
private final ConcurrentMap<String, ConsumerGroupInfo> consumerTable =
new ConcurrentHashMap<>(1024);
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/client/DefaultConsumerIdsChangeListener.java b/broker/src/main/java/org/apache/rocketmq/broker/client/DefaultConsumerIdsChangeListener.java
index 344ad40b3..40df2dc02 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/client/DefaultConsumerIdsChangeListener.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/client/DefaultConsumerIdsChangeListener.java
@@ -28,12 +28,12 @@ import org.apache.rocketmq.broker.BrokerController;
import org.apache.rocketmq.common.AbstractBrokerRunnable;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.utils.ThreadUtils;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
public class DefaultConsumerIdsChangeListener implements ConsumerIdsChangeListener {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final BrokerController brokerController;
private final int cacheSize = 8096;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/client/ProducerManager.java b/broker/src/main/java/org/apache/rocketmq/broker/client/ProducerManager.java
index 3f12c294e..d8a36e8d9 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/client/ProducerManager.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/client/ProducerManager.java
@@ -28,15 +28,15 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import org.apache.rocketmq.broker.util.PositiveAtomicCounter;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.protocol.body.ProducerInfo;
import org.apache.rocketmq.remoting.protocol.body.ProducerTableInfo;
import org.apache.rocketmq.store.stats.BrokerStatsManager;
public class ProducerManager {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private static final long CHANNEL_EXPIRED_TIMEOUT = 1000 * 120;
private static final int GET_AVAILABLE_CHANNEL_RETRY_COUNT = 3;
private final ConcurrentHashMap<String /* group name */, ConcurrentHashMap<Channel, ClientChannelInfo>> groupChannelTable =
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/client/net/Broker2Client.java b/broker/src/main/java/org/apache/rocketmq/broker/client/net/Broker2Client.java
index 6e1f063e1..8668761ed 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/client/net/Broker2Client.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/client/net/Broker2Client.java
@@ -34,8 +34,8 @@ import org.apache.rocketmq.common.message.MessageDecoder;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.message.MessageQueueForC;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingSendRequestException;
import org.apache.rocketmq.remoting.exception.RemotingTimeoutException;
@@ -51,7 +51,7 @@ import org.apache.rocketmq.remoting.protocol.header.NotifyConsumerIdsChangedRequ
import org.apache.rocketmq.remoting.protocol.header.ResetOffsetRequestHeader;
public class Broker2Client {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final BrokerController brokerController;
public Broker2Client(BrokerController brokerController) {
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/client/rebalance/RebalanceLockManager.java b/broker/src/main/java/org/apache/rocketmq/broker/client/rebalance/RebalanceLockManager.java
index 31fa53c25..b4942e827 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/client/rebalance/RebalanceLockManager.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/client/rebalance/RebalanceLockManager.java
@@ -18,8 +18,8 @@ package org.apache.rocketmq.broker.client.rebalance;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.message.MessageQueue;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import java.util.HashSet;
import java.util.Set;
@@ -29,7 +29,7 @@ import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class RebalanceLockManager {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.REBALANCE_LOCK_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.REBALANCE_LOCK_LOGGER_NAME);
private final static long REBALANCE_LOCK_MAX_LIVE_TIME = Long.parseLong(System.getProperty(
"rocketmq.broker.rebalance.lockMaxLiveTime", "60000"));
private final Lock lock = new ReentrantLock();
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/controller/ReplicasManager.java b/broker/src/main/java/org/apache/rocketmq/broker/controller/ReplicasManager.java
index 6754a50f5..4bfb9fdf1 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/controller/ReplicasManager.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/controller/ReplicasManager.java
@@ -36,8 +36,8 @@ import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.Pair;
import org.apache.rocketmq.common.ThreadFactoryImpl;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.EpochEntry;
import org.apache.rocketmq.remoting.protocol.body.SyncStateSet;
import org.apache.rocketmq.remoting.protocol.header.namesrv.controller.GetMetaDataResponseHeader;
@@ -55,7 +55,7 @@ import static org.apache.rocketmq.remoting.protocol.ResponseCode.CONTROLLER_BROK
* syncStateSet, only master will start this timed task.
*/
public class ReplicasManager {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private static final int RETRY_INTERVAL_SECOND = 5;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/dledger/DLedgerRoleChangeHandler.java b/broker/src/main/java/org/apache/rocketmq/broker/dledger/DLedgerRoleChangeHandler.java
index bafdf8ec6..5bfe49671 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/dledger/DLedgerRoleChangeHandler.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/dledger/DLedgerRoleChangeHandler.java
@@ -27,15 +27,15 @@ import java.util.concurrent.TimeUnit;
import org.apache.rocketmq.broker.BrokerController;
import org.apache.rocketmq.common.ThreadFactoryImpl;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.store.DefaultMessageStore;
import org.apache.rocketmq.store.config.BrokerRole;
import org.apache.rocketmq.store.dledger.DLedgerCommitLog;
public class DLedgerRoleChangeHandler implements DLedgerLeaderElector.RoleChangeHandler {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private ExecutorService executorService;
private BrokerController brokerController;
private DefaultMessageStore messageStore;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/failover/EscapeBridge.java b/broker/src/main/java/org/apache/rocketmq/broker/failover/EscapeBridge.java
index ff5e4d938..913c7a3d5 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/failover/EscapeBridge.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/failover/EscapeBridge.java
@@ -44,8 +44,8 @@ import org.apache.rocketmq.common.message.MessageDecoder;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageExtBrokerInner;
import org.apache.rocketmq.common.message.MessageQueue;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.apache.rocketmq.store.GetMessageResult;
import org.apache.rocketmq.store.MessageStore;
@@ -53,7 +53,7 @@ import org.apache.rocketmq.store.PutMessageResult;
import org.apache.rocketmq.store.PutMessageStatus;
public class EscapeBridge {
- protected static final Logger LOG = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ protected static final InternalLogger LOG = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private static final long SEND_TIMEOUT = 3000L;
private static final long DEFAULT_PULL_TIMEOUT_MILLIS = 1000 * 10L;
private final String innerProducerGroupName;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/filter/CommitLogDispatcherCalcBitMap.java b/broker/src/main/java/org/apache/rocketmq/broker/filter/CommitLogDispatcherCalcBitMap.java
index 6df9b010b..d82c53fd9 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/filter/CommitLogDispatcherCalcBitMap.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/filter/CommitLogDispatcherCalcBitMap.java
@@ -20,8 +20,8 @@ package org.apache.rocketmq.broker.filter;
import org.apache.rocketmq.common.BrokerConfig;
import org.apache.rocketmq.common.UtilAll;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.filter.util.BitsArray;
import org.apache.rocketmq.store.CommitLogDispatcher;
import org.apache.rocketmq.store.DispatchRequest;
@@ -34,7 +34,7 @@ import java.util.Iterator;
*/
public class CommitLogDispatcherCalcBitMap implements CommitLogDispatcher {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.FILTER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.FILTER_LOGGER_NAME);
protected final BrokerConfig brokerConfig;
protected final ConsumerFilterManager consumerFilterManager;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/filter/ConsumerFilterManager.java b/broker/src/main/java/org/apache/rocketmq/broker/filter/ConsumerFilterManager.java
index 84d9558b4..533cd52e0 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/filter/ConsumerFilterManager.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/filter/ConsumerFilterManager.java
@@ -32,8 +32,8 @@ import org.apache.rocketmq.common.filter.ExpressionType;
import org.apache.rocketmq.filter.FilterFactory;
import org.apache.rocketmq.filter.util.BloomFilter;
import org.apache.rocketmq.filter.util.BloomFilterData;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.RemotingSerializable;
import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
@@ -42,7 +42,7 @@ import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
*/
public class ConsumerFilterManager extends ConfigManager {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.FILTER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.FILTER_LOGGER_NAME);
private static final long MS_24_HOUR = 24 * 3600 * 1000;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/filter/ExpressionMessageFilter.java b/broker/src/main/java/org/apache/rocketmq/broker/filter/ExpressionMessageFilter.java
index 9fe887e37..1e900f3fe 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/filter/ExpressionMessageFilter.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/filter/ExpressionMessageFilter.java
@@ -24,15 +24,15 @@ import org.apache.rocketmq.common.filter.ExpressionType;
import org.apache.rocketmq.common.message.MessageDecoder;
import org.apache.rocketmq.filter.util.BitsArray;
import org.apache.rocketmq.filter.util.BloomFilter;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
import org.apache.rocketmq.store.ConsumeQueueExt;
import org.apache.rocketmq.store.MessageFilter;
public class ExpressionMessageFilter implements MessageFilter {
- protected static final Logger log = LoggerFactory.getLogger(LoggerName.FILTER_LOGGER_NAME);
+ protected static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.FILTER_LOGGER_NAME);
protected final SubscriptionData subscriptionData;
protected final ConsumerFilterData consumerFilterData;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/filtersrv/FilterServerManager.java b/broker/src/main/java/org/apache/rocketmq/broker/filtersrv/FilterServerManager.java
index 6f3ff3432..af06e2a00 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/filtersrv/FilterServerManager.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/filtersrv/FilterServerManager.java
@@ -33,14 +33,14 @@ import org.apache.rocketmq.common.AbstractBrokerRunnable;
import org.apache.rocketmq.common.ThreadFactoryImpl;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.utils.NetworkUtil;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
public class FilterServerManager {
public static final long FILTER_SERVER_MAX_IDLE_TIME_MILLS = 30000;
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final ConcurrentMap<Channel, FilterServerInfo> filterServerTable =
new ConcurrentHashMap<>(16);
private final BrokerController brokerController;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/filtersrv/FilterServerUtil.java b/broker/src/main/java/org/apache/rocketmq/broker/filtersrv/FilterServerUtil.java
index 84cc7f641..3f4d24d06 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/filtersrv/FilterServerUtil.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/filtersrv/FilterServerUtil.java
@@ -18,10 +18,10 @@
package org.apache.rocketmq.broker.filtersrv;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
+import org.apache.rocketmq.logging.InternalLogger;
public class FilterServerUtil {
- public static void callShell(final String shellString, final Logger log) {
+ public static void callShell(final String shellString, final InternalLogger log) {
Process process = null;
try {
String[] cmdArray = splitShellString(shellString);
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/latency/BrokerFastFailure.java b/broker/src/main/java/org/apache/rocketmq/broker/latency/BrokerFastFailure.java
index 7df67d83b..6269a5535 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/latency/BrokerFastFailure.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/latency/BrokerFastFailure.java
@@ -25,8 +25,8 @@ import org.apache.rocketmq.common.AbstractBrokerRunnable;
import org.apache.rocketmq.common.ThreadFactoryImpl;
import org.apache.rocketmq.common.UtilAll;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.netty.RequestTask;
import org.apache.rocketmq.remoting.protocol.RemotingSysResponseCode;
@@ -35,7 +35,7 @@ import org.apache.rocketmq.remoting.protocol.RemotingSysResponseCode;
* BrokerController#getPullThreadPoolQueue()}
*/
public class BrokerFastFailure {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final ScheduledExecutorService scheduledExecutorService;
private final BrokerController brokerController;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/longpolling/LmqPullRequestHoldService.java b/broker/src/main/java/org/apache/rocketmq/broker/longpolling/LmqPullRequestHoldService.java
index 075f321dd..b3eeea276 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/longpolling/LmqPullRequestHoldService.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/longpolling/LmqPullRequestHoldService.java
@@ -19,12 +19,12 @@ package org.apache.rocketmq.broker.longpolling;
import org.apache.rocketmq.broker.BrokerController;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class LmqPullRequestHoldService extends PullRequestHoldService {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
public LmqPullRequestHoldService(BrokerController brokerController) {
super(brokerController);
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/longpolling/PullRequestHoldService.java b/broker/src/main/java/org/apache/rocketmq/broker/longpolling/PullRequestHoldService.java
index c2677769d..59b884324 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/longpolling/PullRequestHoldService.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/longpolling/PullRequestHoldService.java
@@ -25,12 +25,12 @@ import org.apache.rocketmq.broker.BrokerController;
import org.apache.rocketmq.common.ServiceThread;
import org.apache.rocketmq.common.SystemClock;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.store.ConsumeQueueExt;
public class PullRequestHoldService extends ServiceThread {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
protected static final String TOPIC_QUEUEID_SEPARATOR = "@";
protected final BrokerController brokerController;
private final SystemClock systemClock = new SystemClock();
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/metrics/BrokerMetricsManager.java b/broker/src/main/java/org/apache/rocketmq/broker/metrics/BrokerMetricsManager.java
index adb3a8496..4dd0ebaaf 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/metrics/BrokerMetricsManager.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/metrics/BrokerMetricsManager.java
@@ -56,8 +56,8 @@ import org.apache.rocketmq.common.metrics.NopLongCounter;
import org.apache.rocketmq.common.metrics.NopLongHistogram;
import org.apache.rocketmq.common.metrics.NopObservableLongGauge;
import org.apache.rocketmq.common.topic.TopicValidator;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.metrics.RemotingMetricsManager;
import org.apache.rocketmq.remoting.protocol.header.SendMessageRequestHeader;
import org.apache.rocketmq.store.DefaultMessageStore;
@@ -97,7 +97,7 @@ import static org.apache.rocketmq.remoting.metrics.RemotingMetricsConstant.LABEL
import static org.apache.rocketmq.remoting.metrics.RemotingMetricsConstant.PROTOCOL_TYPE_REMOTING;
public class BrokerMetricsManager {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final BrokerConfig brokerConfig;
private final MessageStore messageStore;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/metrics/ConsumerLagCalculator.java b/broker/src/main/java/org/apache/rocketmq/broker/metrics/ConsumerLagCalculator.java
index 51af5f36b..5a6cdda5a 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/metrics/ConsumerLagCalculator.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/metrics/ConsumerLagCalculator.java
@@ -33,8 +33,8 @@ import org.apache.rocketmq.common.Pair;
import org.apache.rocketmq.common.TopicConfig;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.constant.PermName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.subscription.SubscriptionGroupConfig;
import org.apache.rocketmq.store.MessageStore;
import org.apache.rocketmq.store.queue.ConsumeQueueInterface;
@@ -49,7 +49,7 @@ public class ConsumerLagCalculator {
private final MessageStore messageStore;
private final PopBufferMergeService popBufferMergeService;
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
public ConsumerLagCalculator(BrokerController brokerController) {
this.brokerConfig = brokerController.getBrokerConfig();
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/offset/ConsumerOffsetManager.java b/broker/src/main/java/org/apache/rocketmq/broker/offset/ConsumerOffsetManager.java
index 70f862506..06fdde862 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/offset/ConsumerOffsetManager.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/offset/ConsumerOffsetManager.java
@@ -31,13 +31,13 @@ import org.apache.rocketmq.broker.BrokerPathConfigHelper;
import org.apache.rocketmq.common.ConfigManager;
import org.apache.rocketmq.common.UtilAll;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.DataVersion;
import org.apache.rocketmq.remoting.protocol.RemotingSerializable;
public class ConsumerOffsetManager extends ConfigManager {
- private static final Logger LOG = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOG = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
public static final String TOPIC_GROUP_SEPARATOR = "@";
private DataVersion dataVersion = new DataVersion();
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/offset/ConsumerOrderInfoLockManager.java b/broker/src/main/java/org/apache/rocketmq/broker/offset/ConsumerOrderInfoLockManager.java
index 194c361c4..3cd8dcdb1 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/offset/ConsumerOrderInfoLockManager.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/offset/ConsumerOrderInfoLockManager.java
@@ -29,11 +29,11 @@ import java.util.concurrent.TimeUnit;
import org.apache.rocketmq.broker.BrokerController;
import org.apache.rocketmq.common.ThreadFactoryImpl;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class ConsumerOrderInfoLockManager {
- private static final Logger POP_LOGGER = LoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
+ private static final InternalLogger POP_LOGGER = InternalLoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
private final BrokerController brokerController;
private final Map<Key, Timeout> timeoutMap = new ConcurrentHashMap<>();
private final Timer timer;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/offset/ConsumerOrderInfoManager.java b/broker/src/main/java/org/apache/rocketmq/broker/offset/ConsumerOrderInfoManager.java
index 3a496b920..f80949230 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/offset/ConsumerOrderInfoManager.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/offset/ConsumerOrderInfoManager.java
@@ -32,14 +32,14 @@ import org.apache.rocketmq.broker.BrokerPathConfigHelper;
import org.apache.rocketmq.common.ConfigManager;
import org.apache.rocketmq.common.TopicConfig;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.RemotingSerializable;
import org.apache.rocketmq.remoting.protocol.header.ExtraInfoUtil;
public class ConsumerOrderInfoManager extends ConfigManager {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private static final String TOPIC_GROUP_SEPARATOR = "@";
private static final long CLEAN_SPAN_FROM_LAST = 24 * 3600 * 1000;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/out/BrokerOuterAPI.java b/broker/src/main/java/org/apache/rocketmq/broker/out/BrokerOuterAPI.java
index 80f670fd0..96def3f57 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/out/BrokerOuterAPI.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/out/BrokerOuterAPI.java
@@ -58,8 +58,8 @@ import org.apache.rocketmq.common.namesrv.DefaultTopAddressing;
import org.apache.rocketmq.common.namesrv.TopAddressing;
import org.apache.rocketmq.common.sysflag.PullSysFlag;
import org.apache.rocketmq.common.topic.TopicValidator;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.InvokeCallback;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.RemotingClient;
@@ -132,7 +132,7 @@ import static org.apache.rocketmq.remoting.protocol.ResponseCode.CONTROLLER_BROK
import static org.apache.rocketmq.remoting.protocol.ResponseCode.CONTROLLER_NOT_LEADER;
public class BrokerOuterAPI {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final RemotingClient remotingClient;
private final TopAddressing topAddressing = new DefaultTopAddressing(MixAll.getWSAddr());
private String nameSrvAddr = null;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/AbstractSendMessageProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/AbstractSendMessageProcessor.java
index aa075e6dd..84d9ab785 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/AbstractSendMessageProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/AbstractSendMessageProcessor.java
@@ -47,8 +47,8 @@ import org.apache.rocketmq.common.message.MessageType;
import org.apache.rocketmq.common.sysflag.MessageSysFlag;
import org.apache.rocketmq.common.sysflag.TopicSysFlag;
import org.apache.rocketmq.common.topic.TopicValidator;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.netty.NettyRemotingAbstract;
@@ -64,8 +64,8 @@ import org.apache.rocketmq.store.PutMessageResult;
import org.apache.rocketmq.store.stats.BrokerStatsManager;
public abstract class AbstractSendMessageProcessor implements NettyRequestProcessor {
- protected static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
- protected static final Logger DLQ_LOG = LoggerFactory.getLogger(LoggerName.DLQ_LOGGER_NAME);
+ protected static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ protected static final InternalLogger DLQ_LOG = InternalLoggerFactory.getLogger(LoggerName.DLQ_LOGGER_NAME);
protected List<ConsumeMessageHook> consumeMessageHookList;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/AckMessageProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/AckMessageProcessor.java
index 586c46155..6c5ec933c 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/AckMessageProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/AckMessageProcessor.java
@@ -29,8 +29,8 @@ import org.apache.rocketmq.common.message.MessageConst;
import org.apache.rocketmq.common.message.MessageDecoder;
import org.apache.rocketmq.common.message.MessageExtBrokerInner;
import org.apache.rocketmq.common.utils.DataConverter;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.netty.NettyRequestProcessor;
@@ -43,7 +43,7 @@ import org.apache.rocketmq.store.PutMessageStatus;
import org.apache.rocketmq.store.pop.AckMsg;
public class AckMessageProcessor implements NettyRequestProcessor {
- private static final Logger POP_LOGGER = LoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
+ private static final InternalLogger POP_LOGGER = InternalLoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
private final BrokerController brokerController;
private String reviveTopic;
private PopReviveService[] popReviveServices;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java
index 7415075d6..60cc9c7ea 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java
@@ -72,8 +72,8 @@ import org.apache.rocketmq.common.stats.StatsItem;
import org.apache.rocketmq.common.stats.StatsSnapshot;
import org.apache.rocketmq.common.topic.TopicValidator;
import org.apache.rocketmq.filter.util.BitsArray;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.exception.RemotingTimeoutException;
@@ -189,7 +189,7 @@ import org.apache.rocketmq.store.timer.TimerMessageStore;
import static org.apache.rocketmq.remoting.protocol.RemotingCommand.buildErrorResponse;
public class AdminBrokerProcessor implements NettyRequestProcessor {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
protected final BrokerController brokerController;
public AdminBrokerProcessor(final BrokerController brokerController) {
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/ChangeInvisibleTimeProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/ChangeInvisibleTimeProcessor.java
index 7494bdd7c..6f4853f27 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/ChangeInvisibleTimeProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/ChangeInvisibleTimeProcessor.java
@@ -28,8 +28,8 @@ import org.apache.rocketmq.common.message.MessageConst;
import org.apache.rocketmq.common.message.MessageDecoder;
import org.apache.rocketmq.common.message.MessageExtBrokerInner;
import org.apache.rocketmq.common.utils.DataConverter;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.netty.NettyRequestProcessor;
@@ -44,7 +44,7 @@ import org.apache.rocketmq.store.pop.AckMsg;
import org.apache.rocketmq.store.pop.PopCheckPoint;
public class ChangeInvisibleTimeProcessor implements NettyRequestProcessor {
- private static final Logger POP_LOGGER = LoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
+ private static final InternalLogger POP_LOGGER = InternalLoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
private final BrokerController brokerController;
private final String reviveTopic;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/ClientManageProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/ClientManageProcessor.java
index 07807a22f..468ab86f9 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/ClientManageProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/ClientManageProcessor.java
@@ -25,8 +25,8 @@ import org.apache.rocketmq.common.constant.PermName;
import org.apache.rocketmq.common.filter.ExpressionType;
import org.apache.rocketmq.common.sysflag.TopicSysFlag;
import org.apache.rocketmq.filter.FilterFactory;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.netty.NettyRequestProcessor;
@@ -44,7 +44,7 @@ import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
import org.apache.rocketmq.remoting.protocol.subscription.SubscriptionGroupConfig;
public class ClientManageProcessor implements NettyRequestProcessor {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final BrokerController brokerController;
public ClientManageProcessor(final BrokerController brokerController) {
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/ConsumerManageProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/ConsumerManageProcessor.java
index 0af003827..0363aca1e 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/ConsumerManageProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/ConsumerManageProcessor.java
@@ -22,8 +22,8 @@ import org.apache.rocketmq.broker.BrokerController;
import org.apache.rocketmq.broker.client.ConsumerGroupInfo;
import org.apache.rocketmq.broker.offset.ConsumerOffsetManager;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.netty.NettyRequestProcessor;
@@ -48,7 +48,7 @@ import org.apache.rocketmq.remoting.rpc.RpcResponse;
import static org.apache.rocketmq.remoting.protocol.RemotingCommand.buildErrorResponse;
public class ConsumerManageProcessor implements NettyRequestProcessor {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final BrokerController brokerController;
public ConsumerManageProcessor(final BrokerController brokerController) {
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/DefaultPullMessageResultHandler.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/DefaultPullMessageResultHandler.java
index af0c81ec2..bd59d42c6 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/DefaultPullMessageResultHandler.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/DefaultPullMessageResultHandler.java
@@ -39,8 +39,8 @@ import org.apache.rocketmq.common.sysflag.MessageSysFlag;
import org.apache.rocketmq.common.sysflag.PullSysFlag;
import org.apache.rocketmq.common.topic.TopicValidator;
import org.apache.rocketmq.common.utils.NetworkUtil;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.metrics.RemotingMetricsManager;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
import org.apache.rocketmq.remoting.protocol.ResponseCode;
@@ -63,7 +63,7 @@ import static org.apache.rocketmq.remoting.metrics.RemotingMetricsConstant.LABEL
public class DefaultPullMessageResultHandler implements PullMessageResultHandler {
- protected static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ protected static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
protected final BrokerController brokerController;
public DefaultPullMessageResultHandler(final BrokerController brokerController) {
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/EndTransactionProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/EndTransactionProcessor.java
index 960023508..dfaa473e3 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/EndTransactionProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/EndTransactionProcessor.java
@@ -27,8 +27,8 @@ import org.apache.rocketmq.common.message.MessageDecoder;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageExtBrokerInner;
import org.apache.rocketmq.common.sysflag.MessageSysFlag;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.netty.NettyRequestProcessor;
@@ -42,7 +42,7 @@ import org.apache.rocketmq.store.config.BrokerRole;
* EndTransaction processor: process commit and rollback message
*/
public class EndTransactionProcessor implements NettyRequestProcessor {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
private final BrokerController brokerController;
public EndTransactionProcessor(final BrokerController brokerController) {
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/ForwardRequestProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/ForwardRequestProcessor.java
index 7af75d3af..b0f0a0545 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/ForwardRequestProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/ForwardRequestProcessor.java
@@ -19,13 +19,13 @@ package org.apache.rocketmq.broker.processor;
import io.netty.channel.ChannelHandlerContext;
import org.apache.rocketmq.broker.BrokerController;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.netty.NettyRequestProcessor;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
public class ForwardRequestProcessor implements NettyRequestProcessor {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final BrokerController brokerController;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/NotificationProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/NotificationProcessor.java
index 6c9205a00..1db223068 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/NotificationProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/NotificationProcessor.java
@@ -32,8 +32,8 @@ import org.apache.rocketmq.common.TopicConfig;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.constant.PermName;
import org.apache.rocketmq.common.help.FAQUrl;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.netty.NettyRemotingAbstract;
@@ -46,7 +46,7 @@ import org.apache.rocketmq.remoting.protocol.header.NotificationResponseHeader;
import org.apache.rocketmq.remoting.protocol.subscription.SubscriptionGroupConfig;
public class NotificationProcessor implements NettyRequestProcessor {
- private static final Logger POP_LOGGER = LoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
+ private static final InternalLogger POP_LOGGER = InternalLoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
private final BrokerController brokerController;
private Random random = new Random(System.currentTimeMillis());
private static final String BORN_TIME = "bornTime";
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/PeekMessageProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/PeekMessageProcessor.java
index 9bf19d807..22863825c 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/PeekMessageProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/PeekMessageProcessor.java
@@ -36,8 +36,8 @@ import org.apache.rocketmq.common.constant.PermName;
import org.apache.rocketmq.common.help.FAQUrl;
import org.apache.rocketmq.common.message.MessageDecoder;
import org.apache.rocketmq.common.topic.TopicValidator;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.metrics.RemotingMetricsManager;
@@ -59,7 +59,7 @@ import static org.apache.rocketmq.remoting.metrics.RemotingMetricsConstant.LABEL
import static org.apache.rocketmq.remoting.metrics.RemotingMetricsConstant.LABEL_RESULT;
public class PeekMessageProcessor implements NettyRequestProcessor {
- private static final Logger LOG = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOG = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final BrokerController brokerController;
private Random random = new Random(System.currentTimeMillis());
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/PollingInfoProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/PollingInfoProcessor.java
index 8d2703d01..bd3bf6278 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/PollingInfoProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/PollingInfoProcessor.java
@@ -26,8 +26,8 @@ import org.apache.rocketmq.common.TopicConfig;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.constant.PermName;
import org.apache.rocketmq.common.help.FAQUrl;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.netty.NettyRequestProcessor;
@@ -38,7 +38,7 @@ import org.apache.rocketmq.remoting.protocol.header.PollingInfoResponseHeader;
import org.apache.rocketmq.remoting.protocol.subscription.SubscriptionGroupConfig;
public class PollingInfoProcessor implements NettyRequestProcessor {
- private static final Logger POP_LOGGER = LoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
+ private static final InternalLogger POP_LOGGER = InternalLoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
private final BrokerController brokerController;
public PollingInfoProcessor(final BrokerController brokerController) {
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/PopBufferMergeService.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/PopBufferMergeService.java
index 40ea99b2e..3a1d8baea 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/PopBufferMergeService.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/PopBufferMergeService.java
@@ -31,8 +31,8 @@ import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.message.MessageConst;
import org.apache.rocketmq.common.message.MessageDecoder;
import org.apache.rocketmq.common.utils.DataConverter;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.common.message.MessageExtBrokerInner;
import org.apache.rocketmq.store.PutMessageResult;
import org.apache.rocketmq.store.PutMessageStatus;
@@ -41,7 +41,7 @@ import org.apache.rocketmq.store.pop.AckMsg;
import org.apache.rocketmq.store.pop.PopCheckPoint;
public class PopBufferMergeService extends ServiceThread {
- private static final Logger POP_LOGGER = LoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
+ private static final InternalLogger POP_LOGGER = InternalLoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
ConcurrentHashMap<String/*mergeKey*/, PopCheckPointWrapper>
buffer = new ConcurrentHashMap<>(1024 * 16);
ConcurrentHashMap<String/*topic@cid@queueId*/, QueueWithTime<PopCheckPointWrapper>> commitOffsets =
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/PopMessageProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/PopMessageProcessor.java
index 7251c616b..f0f23e75e 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/PopMessageProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/PopMessageProcessor.java
@@ -55,8 +55,8 @@ import org.apache.rocketmq.common.message.MessageDecoder;
import org.apache.rocketmq.common.message.MessageExtBrokerInner;
import org.apache.rocketmq.common.topic.TopicValidator;
import org.apache.rocketmq.common.utils.DataConverter;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.metrics.RemotingMetricsManager;
@@ -85,8 +85,8 @@ import static org.apache.rocketmq.remoting.metrics.RemotingMetricsConstant.LABEL
import static org.apache.rocketmq.remoting.metrics.RemotingMetricsConstant.LABEL_RESULT;
public class PopMessageProcessor implements NettyRequestProcessor {
- private static final Logger POP_LOGGER =
- LoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
+ private static final InternalLogger POP_LOGGER =
+ InternalLoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
private final BrokerController brokerController;
private Random random = new Random(System.currentTimeMillis());
String reviveTopic;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/PopReviveService.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/PopReviveService.java
index 50489e230..96ea64aa9 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/PopReviveService.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/PopReviveService.java
@@ -42,8 +42,8 @@ import org.apache.rocketmq.common.message.MessageDecoder;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.topic.TopicValidator;
import org.apache.rocketmq.common.utils.DataConverter;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.store.AppendMessageStatus;
import org.apache.rocketmq.store.GetMessageResult;
import org.apache.rocketmq.common.message.MessageExtBrokerInner;
@@ -56,7 +56,7 @@ import static org.apache.rocketmq.broker.metrics.BrokerMetricsConstant.LABEL_IS_
import static org.apache.rocketmq.broker.metrics.BrokerMetricsConstant.LABEL_TOPIC;
public class PopReviveService extends ServiceThread {
- private static final Logger POP_LOGGER = LoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
+ private static final InternalLogger POP_LOGGER = InternalLoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);
private int queueId;
private BrokerController brokerController;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/PullMessageProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/PullMessageProcessor.java
index 6d595e46f..5fa604111 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/PullMessageProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/PullMessageProcessor.java
@@ -38,8 +38,8 @@ import org.apache.rocketmq.common.constant.PermName;
import org.apache.rocketmq.common.filter.ExpressionType;
import org.apache.rocketmq.common.help.FAQUrl;
import org.apache.rocketmq.common.sysflag.PullSysFlag;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.netty.NettyRemotingAbstract;
@@ -75,7 +75,7 @@ import org.apache.rocketmq.store.stats.BrokerStatsManager;
import static org.apache.rocketmq.remoting.protocol.RemotingCommand.buildErrorResponse;
public class PullMessageProcessor implements NettyRequestProcessor {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private List<ConsumeMessageHook> consumeMessageHookList;
private PullMessageResultHandler pullMessageResultHandler;
private final BrokerController brokerController;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/QueryAssignmentProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/QueryAssignmentProcessor.java
index 8ecc3f0f5..28c32ad62 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/QueryAssignmentProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/QueryAssignmentProcessor.java
@@ -37,8 +37,8 @@ import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.message.MessageQueueAssignment;
import org.apache.rocketmq.common.message.MessageRequestMode;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.netty.NettyRequestProcessor;
@@ -51,7 +51,7 @@ import org.apache.rocketmq.remoting.protocol.body.SetMessageRequestModeRequestBo
import org.apache.rocketmq.remoting.protocol.heartbeat.MessageModel;
public class QueryAssignmentProcessor implements NettyRequestProcessor {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final BrokerController brokerController;
@@ -64,9 +64,9 @@ public class QueryAssignmentProcessor implements NettyRequestProcessor {
//register strategy
//NOTE: init with broker's log instead of init with ClientLogger.getLog();
- AllocateMessageQueueAveragely allocateMessageQueueAveragely = new AllocateMessageQueueAveragely();
+ AllocateMessageQueueAveragely allocateMessageQueueAveragely = new AllocateMessageQueueAveragely(log);
name2LoadStrategy.put(allocateMessageQueueAveragely.getName(), allocateMessageQueueAveragely);
- AllocateMessageQueueAveragelyByCircle allocateMessageQueueAveragelyByCircle = new AllocateMessageQueueAveragelyByCircle();
+ AllocateMessageQueueAveragelyByCircle allocateMessageQueueAveragelyByCircle = new AllocateMessageQueueAveragelyByCircle(log);
name2LoadStrategy.put(allocateMessageQueueAveragelyByCircle.getName(), allocateMessageQueueAveragelyByCircle);
this.messageRequestModeManager = new MessageRequestModeManager(brokerController);
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/QueryMessageProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/QueryMessageProcessor.java
index 1a271cfb0..f027a687d 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/QueryMessageProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/QueryMessageProcessor.java
@@ -26,8 +26,8 @@ import org.apache.rocketmq.broker.pagecache.OneMessageTransfer;
import org.apache.rocketmq.broker.pagecache.QueryMessageTransfer;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.metrics.RemotingMetricsManager;
import org.apache.rocketmq.remoting.netty.NettyRequestProcessor;
@@ -45,7 +45,7 @@ import static org.apache.rocketmq.remoting.metrics.RemotingMetricsConstant.LABEL
import static org.apache.rocketmq.remoting.metrics.RemotingMetricsConstant.LABEL_RESULT;
public class QueryMessageProcessor implements NettyRequestProcessor {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final BrokerController brokerController;
public QueryMessageProcessor(final BrokerController brokerController) {
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/ReplyMessageProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/ReplyMessageProcessor.java
index d16a9a69a..91d3bb784 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/ReplyMessageProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/ReplyMessageProcessor.java
@@ -36,8 +36,8 @@ import org.apache.rocketmq.common.message.MessageDecoder;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageExtBrokerInner;
import org.apache.rocketmq.common.topic.TopicValidator;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
@@ -55,7 +55,7 @@ import static org.apache.rocketmq.broker.metrics.BrokerMetricsConstant.LABEL_MES
import static org.apache.rocketmq.broker.metrics.BrokerMetricsConstant.LABEL_TOPIC;
public class ReplyMessageProcessor extends AbstractSendMessageProcessor {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
public ReplyMessageProcessor(final BrokerController brokerController) {
super(brokerController);
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/schedule/ScheduleMessageService.java b/broker/src/main/java/org/apache/rocketmq/broker/schedule/ScheduleMessageService.java
index bb7db9ea7..4bf09b8b6 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/schedule/ScheduleMessageService.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/schedule/ScheduleMessageService.java
@@ -50,8 +50,8 @@ import org.apache.rocketmq.common.message.MessageExtBrokerInner;
import org.apache.rocketmq.common.running.RunningStats;
import org.apache.rocketmq.common.topic.TopicValidator;
import org.apache.rocketmq.common.utils.ThreadUtils;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.DataVersion;
import org.apache.rocketmq.store.PutMessageResult;
import org.apache.rocketmq.store.PutMessageStatus;
@@ -66,7 +66,7 @@ import static org.apache.rocketmq.broker.metrics.BrokerMetricsConstant.LABEL_MES
import static org.apache.rocketmq.broker.metrics.BrokerMetricsConstant.LABEL_TOPIC;
public class ScheduleMessageService extends ConfigManager {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private static final long FIRST_DELAY_TIME = 1000L;
private static final long DELAY_FOR_A_WHILE = 100L;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/slave/SlaveSynchronize.java b/broker/src/main/java/org/apache/rocketmq/broker/slave/SlaveSynchronize.java
index 7a4a17c41..750b17426 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/slave/SlaveSynchronize.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/slave/SlaveSynchronize.java
@@ -23,8 +23,8 @@ import org.apache.rocketmq.broker.loadbalance.MessageRequestModeManager;
import org.apache.rocketmq.broker.subscription.SubscriptionGroupManager;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.body.ConsumerOffsetSerializeWrapper;
import org.apache.rocketmq.remoting.protocol.body.MessageRequestModeSerializeWrapper;
import org.apache.rocketmq.remoting.protocol.body.SubscriptionGroupWrapper;
@@ -34,7 +34,7 @@ import org.apache.rocketmq.store.timer.TimerCheckpoint;
import org.apache.rocketmq.store.timer.TimerMetrics;
public class SlaveSynchronize {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final BrokerController brokerController;
private volatile String masterAddr = null;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/subscription/SubscriptionGroupManager.java b/broker/src/main/java/org/apache/rocketmq/broker/subscription/SubscriptionGroupManager.java
index 4a097546b..3b153ef2d 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/subscription/SubscriptionGroupManager.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/subscription/SubscriptionGroupManager.java
@@ -26,14 +26,14 @@ import org.apache.rocketmq.broker.BrokerPathConfigHelper;
import org.apache.rocketmq.common.ConfigManager;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.DataVersion;
import org.apache.rocketmq.remoting.protocol.RemotingSerializable;
import org.apache.rocketmq.remoting.protocol.subscription.SubscriptionGroupConfig;
public class SubscriptionGroupManager extends ConfigManager {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final ConcurrentMap<String, SubscriptionGroupConfig> subscriptionGroupTable =
new ConcurrentHashMap<>(1024);
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java b/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java
index 90c029bae..6eb10f592 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java
@@ -42,8 +42,8 @@ import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.constant.PermName;
import org.apache.rocketmq.common.sysflag.TopicSysFlag;
import org.apache.rocketmq.common.topic.TopicValidator;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.DataVersion;
import org.apache.rocketmq.remoting.protocol.body.KVTable;
import org.apache.rocketmq.remoting.protocol.body.TopicConfigSerializeWrapper;
@@ -51,7 +51,7 @@ import org.apache.rocketmq.remoting.protocol.body.TopicConfigSerializeWrapper;
import static com.google.common.base.Preconditions.checkNotNull;
public class TopicConfigManager extends ConfigManager {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private static final long LOCK_TIMEOUT_MILLIS = 3000;
private static final int SCHEDULE_TOPIC_QUEUE_NUM = 18;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicQueueMappingCleanService.java b/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicQueueMappingCleanService.java
index 98e50d42a..e08adbcb6 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicQueueMappingCleanService.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicQueueMappingCleanService.java
@@ -30,8 +30,8 @@ import org.apache.rocketmq.common.ServiceThread;
import org.apache.rocketmq.common.UtilAll;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.message.MessageQueue;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.RequestCode;
import org.apache.rocketmq.remoting.protocol.admin.TopicOffset;
import org.apache.rocketmq.remoting.protocol.admin.TopicStatsTable;
@@ -49,7 +49,7 @@ import org.apache.rocketmq.remoting.rpc.RpcResponse;
import org.apache.rocketmq.store.config.MessageStoreConfig;
public class TopicQueueMappingCleanService extends ServiceThread {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private TopicQueueMappingManager topicQueueMappingManager;
private BrokerOuterAPI brokerOuterAPI;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicQueueMappingManager.java b/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicQueueMappingManager.java
index 65600e033..7a8ab7cca 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicQueueMappingManager.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicQueueMappingManager.java
@@ -27,8 +27,8 @@ import org.apache.rocketmq.broker.BrokerController;
import org.apache.rocketmq.broker.BrokerPathConfigHelper;
import org.apache.rocketmq.common.ConfigManager;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.DataVersion;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
import org.apache.rocketmq.remoting.protocol.ResponseCode;
@@ -43,7 +43,7 @@ import org.apache.rocketmq.remoting.rpc.TopicRequestHeader;
import static org.apache.rocketmq.remoting.protocol.RemotingCommand.buildErrorResponse;
public class TopicQueueMappingManager extends ConfigManager {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private static final long LOCK_TIMEOUT_MILLIS = 3000;
private transient final Lock lock = new ReentrantLock();
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicRouteInfoManager.java b/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicRouteInfoManager.java
index a5788738d..715c8493a 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicRouteInfoManager.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicRouteInfoManager.java
@@ -36,8 +36,8 @@ import org.apache.rocketmq.client.impl.producer.TopicPublishInfo;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.message.MessageQueue;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.apache.rocketmq.remoting.protocol.NamespaceUtil;
import org.apache.rocketmq.remoting.protocol.ResponseCode;
@@ -48,7 +48,7 @@ public class TopicRouteInfoManager {
private static final long GET_TOPIC_ROUTE_TIMEOUT = 3000L;
private static final long LOCK_TIMEOUT_MILLIS = 3000L;
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final Lock lockNamesrv = new ReentrantLock();
private final ConcurrentMap<String/* Topic */, TopicRouteData> topicRouteTable = new ConcurrentHashMap<>();
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/transaction/AbstractTransactionalMessageCheckListener.java b/broker/src/main/java/org/apache/rocketmq/broker/transaction/AbstractTransactionalMessageCheckListener.java
index 6549615ea..91a80f0b8 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/transaction/AbstractTransactionalMessageCheckListener.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/transaction/AbstractTransactionalMessageCheckListener.java
@@ -27,12 +27,12 @@ import org.apache.rocketmq.common.ThreadFactoryImpl;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.message.MessageConst;
import org.apache.rocketmq.common.message.MessageExt;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.header.CheckTransactionStateRequestHeader;
public abstract class AbstractTransactionalMessageCheckListener {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
private BrokerController brokerController;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/transaction/TransactionalMessageCheckService.java b/broker/src/main/java/org/apache/rocketmq/broker/transaction/TransactionalMessageCheckService.java
index 2cbf060f0..6a3c2d2b2 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/transaction/TransactionalMessageCheckService.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/transaction/TransactionalMessageCheckService.java
@@ -19,11 +19,11 @@ package org.apache.rocketmq.broker.transaction;
import org.apache.rocketmq.broker.BrokerController;
import org.apache.rocketmq.common.ServiceThread;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class TransactionalMessageCheckService extends ServiceThread {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
private BrokerController brokerController;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/DefaultTransactionalMessageCheckListener.java b/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/DefaultTransactionalMessageCheckListener.java
index 53080cab2..a66709a16 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/DefaultTransactionalMessageCheckListener.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/DefaultTransactionalMessageCheckListener.java
@@ -24,8 +24,8 @@ import org.apache.rocketmq.common.message.MessageAccessor;
import org.apache.rocketmq.common.message.MessageConst;
import org.apache.rocketmq.common.message.MessageDecoder;
import org.apache.rocketmq.common.message.MessageExt;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.common.message.MessageExtBrokerInner;
import org.apache.rocketmq.store.PutMessageResult;
import org.apache.rocketmq.store.PutMessageStatus;
@@ -33,7 +33,7 @@ import org.apache.rocketmq.store.PutMessageStatus;
import java.util.concurrent.ThreadLocalRandom;
public class DefaultTransactionalMessageCheckListener extends AbstractTransactionalMessageCheckListener {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
public DefaultTransactionalMessageCheckListener() {
super();
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalMessageBridge.java b/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalMessageBridge.java
index 3abbc9ced..21ba11951 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalMessageBridge.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalMessageBridge.java
@@ -44,10 +44,10 @@ import org.apache.rocketmq.common.message.MessageExtBrokerInner;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.sysflag.MessageSysFlag;
import org.apache.rocketmq.common.topic.TopicValidator;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
+import org.apache.rocketmq.logging.InnerLoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
import org.apache.rocketmq.store.GetMessageResult;
import org.apache.rocketmq.store.MessageStore;
import org.apache.rocketmq.store.PutMessageResult;
@@ -58,7 +58,7 @@ import static org.apache.rocketmq.broker.metrics.BrokerMetricsConstant.LABEL_IS_
import static org.apache.rocketmq.broker.metrics.BrokerMetricsConstant.LABEL_TOPIC;
public class TransactionalMessageBridge {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InnerLoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
private final ConcurrentHashMap<Integer, MessageQueue> opQueueMap = new ConcurrentHashMap<>();
private final BrokerController brokerController;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalMessageServiceImpl.java b/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalMessageServiceImpl.java
index 1a65f97b3..2ec501633 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalMessageServiceImpl.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalMessageServiceImpl.java
@@ -40,8 +40,8 @@ import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageExtBrokerInner;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.topic.TopicValidator;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.ResponseCode;
import org.apache.rocketmq.remoting.protocol.header.EndTransactionRequestHeader;
import org.apache.rocketmq.store.PutMessageResult;
@@ -49,7 +49,7 @@ import org.apache.rocketmq.store.PutMessageStatus;
import org.apache.rocketmq.store.config.BrokerRole;
public class TransactionalMessageServiceImpl implements TransactionalMessageService {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
private TransactionalMessageBridge transactionalMessageBridge;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalOpBatchService.java b/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalOpBatchService.java
index 411a2cf43..dfd0474e4 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalOpBatchService.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalOpBatchService.java
@@ -19,11 +19,11 @@ package org.apache.rocketmq.broker.transaction.queue;
import org.apache.rocketmq.broker.BrokerController;
import org.apache.rocketmq.common.ServiceThread;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class TransactionalOpBatchService extends ServiceThread {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
private BrokerController brokerController;
private TransactionalMessageServiceImpl transactionalMessageService;
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/util/HookUtils.java b/broker/src/main/java/org/apache/rocketmq/broker/util/HookUtils.java
index 72eb086db..c6f7bfa38 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/util/HookUtils.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/util/HookUtils.java
@@ -32,8 +32,8 @@ import org.apache.rocketmq.common.message.MessageExtBrokerInner;
import org.apache.rocketmq.common.sysflag.MessageSysFlag;
import org.apache.rocketmq.common.topic.TopicValidator;
import org.apache.rocketmq.common.utils.QueueTypeUtils;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.store.PutMessageResult;
import org.apache.rocketmq.store.PutMessageStatus;
import org.apache.rocketmq.store.config.BrokerRole;
@@ -41,7 +41,7 @@ import org.apache.rocketmq.store.timer.TimerMessageStore;
public class HookUtils {
- protected static final Logger LOG = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ protected static final InternalLogger LOG = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private static AtomicLong printTimes = new AtomicLong(0);
diff --git a/broker/src/test/java/org/apache/rocketmq/broker/util/TransactionalMessageServiceImpl.java b/broker/src/test/java/org/apache/rocketmq/broker/util/TransactionalMessageServiceImpl.java
index 8b2d7f1b2..0f7cc4f70 100644
--- a/broker/src/test/java/org/apache/rocketmq/broker/util/TransactionalMessageServiceImpl.java
+++ b/broker/src/test/java/org/apache/rocketmq/broker/util/TransactionalMessageServiceImpl.java
@@ -23,13 +23,13 @@ import org.apache.rocketmq.broker.transaction.TransactionalMessageService;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageExtBrokerInner;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.header.EndTransactionRequestHeader;
import org.apache.rocketmq.store.PutMessageResult;
public class TransactionalMessageServiceImpl implements TransactionalMessageService {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.TRANSACTION_LOGGER_NAME);
@Override
public PutMessageResult prepareMessage(MessageExtBrokerInner messageInner) {
diff --git a/client/src/test/resources/rmq.logback-test.xml b/broker/src/test/resources/logback-test.xml
similarity index 62%
rename from client/src/test/resources/rmq.logback-test.xml
rename to broker/src/test/resources/logback-test.xml
index c3ec0d1e8..7718d4a33 100644
--- a/client/src/test/resources/rmq.logback-test.xml
+++ b/broker/src/test/resources/logback-test.xml
@@ -15,22 +15,18 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
+
<configuration>
- <appender name="CONSOLE" class="org.apache.rocketmq.shade.ch.qos.logback.core.ConsoleAppender">
- <layout class="org.apache.rocketmq.shade.ch.qos.logback.classic.PatternLayout">
- <Pattern>
- %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
- </Pattern>
- </layout>
+ <appender name="DefaultAppender" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
+ <charset class="java.nio.charset.Charset">UTF-8</charset>
+ </encoder>
</appender>
- <logger name="org.apache.rocketmq" level="error" additivity="false">
- <appender-ref ref="CONSOLE"/>
- </logger>
-
- <root level="error">
- <appender-ref ref="CONSOLE"/>
+ <root>
+ <level value="OFF"/>
+ <appender-ref ref="DefaultAppender"/>
</root>
-
-</configuration>
\ No newline at end of file
+</configuration>
diff --git a/client/BUILD.bazel b/client/BUILD.bazel
index 353fc0bc5..8637a2316 100644
--- a/client/BUILD.bazel
+++ b/client/BUILD.bazel
@@ -23,6 +23,7 @@ java_library(
deps = [
"//common",
"//remoting",
+ "//logging",
"@maven//:org_apache_commons_commons_lang3",
"@maven//:commons_validator_commons_validator",
"@maven//:com_github_luben_zstd_jni",
@@ -31,7 +32,6 @@ java_library(
"@maven//:io_netty_netty_all",
"@maven//:io_opentracing_opentracing_api",
"@maven//:commons_collections_commons_collections",
- "@maven//:io_github_aliyun_mq_rocketmq_slf4j_api",
],
)
diff --git a/client/pom.xml b/client/pom.xml
index 9d0dd30fc..d572eafc2 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -35,7 +35,6 @@
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-remoting</artifactId>
- <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>io.netty</groupId>
@@ -59,13 +58,5 @@
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
- <dependency>
- <groupId>io.github.aliyun-mq</groupId>
- <artifactId>rocketmq-slf4j-api</artifactId>
- </dependency>
- <dependency>
- <groupId>io.github.aliyun-mq</groupId>
- <artifactId>rocketmq-logback-classic</artifactId>
- </dependency>
</dependencies>
</project>
diff --git a/client/src/main/java/org/apache/rocketmq/client/MQHelper.java b/client/src/main/java/org/apache/rocketmq/client/MQHelper.java
index 6c35cd131..610d2ebcf 100644
--- a/client/src/main/java/org/apache/rocketmq/client/MQHelper.java
+++ b/client/src/main/java/org/apache/rocketmq/client/MQHelper.java
@@ -19,14 +19,12 @@ package org.apache.rocketmq.client;
import java.util.Set;
import java.util.TreeSet;
import org.apache.rocketmq.client.consumer.DefaultMQPullConsumer;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.message.MessageQueue;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.protocol.heartbeat.MessageModel;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public class MQHelper {
- private static final Logger log = LoggerFactory.getLogger(MQHelper.class);
-
@Deprecated
public static void resetOffsetByTimestamp(
final MessageModel messageModel,
@@ -39,11 +37,11 @@ public class MQHelper {
/**
* Reset consumer topic offset according to time
*
- * @param messageModel which model
- * @param instanceName which instance
+ * @param messageModel which model
+ * @param instanceName which instance
* @param consumerGroup consumer group
- * @param topic topic
- * @param timestamp time
+ * @param topic topic
+ * @param timestamp time
*/
public static void resetOffsetByTimestamp(
final MessageModel messageModel,
@@ -51,6 +49,7 @@ public class MQHelper {
final String consumerGroup,
final String topic,
final long timestamp) throws Exception {
+ final InternalLogger log = ClientLogger.getLog();
DefaultMQPullConsumer consumer = new DefaultMQPullConsumer(consumerGroup);
consumer.setInstanceName(instanceName);
diff --git a/client/src/main/java/org/apache/rocketmq/client/consumer/DefaultLitePullConsumer.java b/client/src/main/java/org/apache/rocketmq/client/consumer/DefaultLitePullConsumer.java
index 5de860494..4e03fd62f 100644
--- a/client/src/main/java/org/apache/rocketmq/client/consumer/DefaultLitePullConsumer.java
+++ b/client/src/main/java/org/apache/rocketmq/client/consumer/DefaultLitePullConsumer.java
@@ -25,6 +25,7 @@ import org.apache.rocketmq.client.consumer.rebalance.AllocateMessageQueueAverage
import org.apache.rocketmq.client.consumer.store.OffsetStore;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.impl.consumer.DefaultLitePullConsumerImpl;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.trace.AsyncTraceDispatcher;
import org.apache.rocketmq.client.trace.TraceDispatcher;
import org.apache.rocketmq.client.trace.hook.ConsumeMessageTraceHookImpl;
@@ -33,15 +34,14 @@ import org.apache.rocketmq.common.UtilAll;
import org.apache.rocketmq.common.consumer.ConsumeFromWhere;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.protocol.NamespaceUtil;
import org.apache.rocketmq.remoting.protocol.heartbeat.MessageModel;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public class DefaultLitePullConsumer extends ClientConfig implements LitePullConsumer {
- private static final Logger log = LoggerFactory.getLogger(DefaultLitePullConsumer.class);
+ private final InternalLogger log = ClientLogger.getLog();
private final DefaultLitePullConsumerImpl defaultLitePullConsumerImpl;
diff --git a/client/src/main/java/org/apache/rocketmq/client/consumer/DefaultMQPushConsumer.java b/client/src/main/java/org/apache/rocketmq/client/consumer/DefaultMQPushConsumer.java
index 71920986d..2c82835bb 100644
--- a/client/src/main/java/org/apache/rocketmq/client/consumer/DefaultMQPushConsumer.java
+++ b/client/src/main/java/org/apache/rocketmq/client/consumer/DefaultMQPushConsumer.java
@@ -30,6 +30,7 @@ import org.apache.rocketmq.client.consumer.store.OffsetStore;
import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.trace.AsyncTraceDispatcher;
import org.apache.rocketmq.client.trace.TraceDispatcher;
import org.apache.rocketmq.client.trace.hook.ConsumeMessageTraceHookImpl;
@@ -39,12 +40,11 @@ import org.apache.rocketmq.common.consumer.ConsumeFromWhere;
import org.apache.rocketmq.common.message.MessageDecoder;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.apache.rocketmq.remoting.protocol.NamespaceUtil;
import org.apache.rocketmq.remoting.protocol.heartbeat.MessageModel;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
/**
* In most scenarios, this is the mostly recommended class to consume messages.
@@ -63,7 +63,7 @@ import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
*/
public class DefaultMQPushConsumer extends ClientConfig implements MQPushConsumer {
- private final Logger log = LoggerFactory.getLogger(DefaultMQPushConsumer.class);
+ private final InternalLogger log = ClientLogger.getLog();
/**
* Internal implementation. Most of the functions herein are delegated to it.
diff --git a/client/src/main/java/org/apache/rocketmq/client/consumer/MQPullConsumerScheduleService.java b/client/src/main/java/org/apache/rocketmq/client/consumer/MQPullConsumerScheduleService.java
index 45eb0db70..f53dd31cc 100644
--- a/client/src/main/java/org/apache/rocketmq/client/consumer/MQPullConsumerScheduleService.java
+++ b/client/src/main/java/org/apache/rocketmq/client/consumer/MQPullConsumerScheduleService.java
@@ -24,13 +24,13 @@ import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.apache.rocketmq.client.exception.MQClientException;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.ThreadFactoryImpl;
import org.apache.rocketmq.common.message.MessageQueue;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.protocol.NamespaceUtil;
import org.apache.rocketmq.remoting.protocol.heartbeat.MessageModel;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
/**
* Schedule service for pull consumer.
@@ -38,7 +38,7 @@ import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
* DefaultLitePullConsumer} is recommend to use in the scenario of actively pulling messages.
*/
public class MQPullConsumerScheduleService {
- private final Logger log = LoggerFactory.getLogger(MQPullConsumerScheduleService.class);
+ private final InternalLogger log = ClientLogger.getLog();
private final MessageQueueListener messageQueueListener = new MessageQueueListenerImpl();
private final ConcurrentMap<MessageQueue, PullTaskImpl> taskTable =
new ConcurrentHashMap<>();
diff --git a/client/src/main/java/org/apache/rocketmq/client/consumer/rebalance/AbstractAllocateMessageQueueStrategy.java b/client/src/main/java/org/apache/rocketmq/client/consumer/rebalance/AbstractAllocateMessageQueueStrategy.java
index a550f7e01..39b44e5e0 100644
--- a/client/src/main/java/org/apache/rocketmq/client/consumer/rebalance/AbstractAllocateMessageQueueStrategy.java
+++ b/client/src/main/java/org/apache/rocketmq/client/consumer/rebalance/AbstractAllocateMessageQueueStrategy.java
@@ -21,13 +21,21 @@ import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.consumer.AllocateMessageQueueStrategy;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.message.MessageQueue;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
public abstract class AbstractAllocateMessageQueueStrategy implements AllocateMessageQueueStrategy {
- private static final Logger log = LoggerFactory.getLogger(AbstractAllocateMessageQueueStrategy.class);
+ protected InternalLogger log;
+
+ AbstractAllocateMessageQueueStrategy() {
+ this.log = ClientLogger.getLog();
+ }
+
+ public AbstractAllocateMessageQueueStrategy(InternalLogger log) {
+ this.log = log;
+ }
public boolean check(String consumerGroup, String currentCID, List<MessageQueue> mqAll,
List<String> cidAll) {
diff --git a/client/src/main/java/org/apache/rocketmq/client/consumer/rebalance/AllocateMessageQueueAveragely.java b/client/src/main/java/org/apache/rocketmq/client/consumer/rebalance/AllocateMessageQueueAveragely.java
index 75e5d1c21..c3d3dbcd4 100644
--- a/client/src/main/java/org/apache/rocketmq/client/consumer/rebalance/AllocateMessageQueueAveragely.java
+++ b/client/src/main/java/org/apache/rocketmq/client/consumer/rebalance/AllocateMessageQueueAveragely.java
@@ -18,6 +18,8 @@ package org.apache.rocketmq.client.consumer.rebalance;
import java.util.ArrayList;
import java.util.List;
+import org.apache.rocketmq.client.log.ClientLogger;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.common.message.MessageQueue;
/**
@@ -25,6 +27,14 @@ import org.apache.rocketmq.common.message.MessageQueue;
*/
public class AllocateMessageQueueAveragely extends AbstractAllocateMessageQueueStrategy {
+ public AllocateMessageQueueAveragely() {
+ log = ClientLogger.getLog();
+ }
+
+ public AllocateMessageQueueAveragely(InternalLogger log) {
+ super(log);
+ }
+
@Override
public List<MessageQueue> allocate(String consumerGroup, String currentCID, List<MessageQueue> mqAll,
List<String> cidAll) {
diff --git a/client/src/main/java/org/apache/rocketmq/client/consumer/rebalance/AllocateMessageQueueAveragelyByCircle.java b/client/src/main/java/org/apache/rocketmq/client/consumer/rebalance/AllocateMessageQueueAveragelyByCircle.java
index cc618a81a..10f8c9de1 100644
--- a/client/src/main/java/org/apache/rocketmq/client/consumer/rebalance/AllocateMessageQueueAveragelyByCircle.java
+++ b/client/src/main/java/org/apache/rocketmq/client/consumer/rebalance/AllocateMessageQueueAveragelyByCircle.java
@@ -18,6 +18,8 @@ package org.apache.rocketmq.client.consumer.rebalance;
import java.util.ArrayList;
import java.util.List;
+import org.apache.rocketmq.client.log.ClientLogger;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.common.message.MessageQueue;
/**
@@ -25,6 +27,14 @@ import org.apache.rocketmq.common.message.MessageQueue;
*/
public class AllocateMessageQueueAveragelyByCircle extends AbstractAllocateMessageQueueStrategy {
+ public AllocateMessageQueueAveragelyByCircle() {
+ log = ClientLogger.getLog();
+ }
+
+ public AllocateMessageQueueAveragelyByCircle(InternalLogger log) {
+ super(log);
+ }
+
@Override
public List<MessageQueue> allocate(String consumerGroup, String currentCID, List<MessageQueue> mqAll,
List<String> cidAll) {
diff --git a/client/src/main/java/org/apache/rocketmq/client/consumer/store/LocalFileOffsetStore.java b/client/src/main/java/org/apache/rocketmq/client/consumer/store/LocalFileOffsetStore.java
index d24478a1b..108130d51 100644
--- a/client/src/main/java/org/apache/rocketmq/client/consumer/store/LocalFileOffsetStore.java
+++ b/client/src/main/java/org/apache/rocketmq/client/consumer/store/LocalFileOffsetStore.java
@@ -28,13 +28,13 @@ import java.util.concurrent.atomic.AtomicLong;
import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.impl.factory.MQClientInstance;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.UtilAll;
import org.apache.rocketmq.common.help.FAQUrl;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.remoting.exception.RemotingException;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
/**
* Local storage implementation
@@ -43,7 +43,7 @@ public class LocalFileOffsetStore implements OffsetStore {
public final static String LOCAL_OFFSET_STORE_DIR = System.getProperty(
"rocketmq.client.localOffsetStoreDir",
System.getProperty("user.home") + File.separator + ".rocketmq_offsets");
- private final static Logger log = LoggerFactory.getLogger(LocalFileOffsetStore.class);
+ private final static InternalLogger log = ClientLogger.getLog();
private final MQClientInstance mQClientFactory;
private final String groupName;
private final String storePath;
diff --git a/client/src/main/java/org/apache/rocketmq/client/consumer/store/RemoteBrokerOffsetStore.java b/client/src/main/java/org/apache/rocketmq/client/consumer/store/RemoteBrokerOffsetStore.java
index 3a597361e..98e6c7672 100644
--- a/client/src/main/java/org/apache/rocketmq/client/consumer/store/RemoteBrokerOffsetStore.java
+++ b/client/src/main/java/org/apache/rocketmq/client/consumer/store/RemoteBrokerOffsetStore.java
@@ -28,20 +28,20 @@ import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.exception.OffsetNotFoundException;
import org.apache.rocketmq.client.impl.FindBrokerResult;
import org.apache.rocketmq.client.impl.factory.MQClientInstance;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.UtilAll;
import org.apache.rocketmq.common.message.MessageQueue;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.apache.rocketmq.remoting.protocol.header.QueryConsumerOffsetRequestHeader;
import org.apache.rocketmq.remoting.protocol.header.UpdateConsumerOffsetRequestHeader;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
/**
* Remote storage implementation
*/
public class RemoteBrokerOffsetStore implements OffsetStore {
- private final static Logger log = LoggerFactory.getLogger(RemoteBrokerOffsetStore.class);
+ private final static InternalLogger log = ClientLogger.getLog();
private final MQClientInstance mQClientFactory;
private final String groupName;
private ConcurrentMap<MessageQueue, AtomicLong> offsetTable =
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/ClientRemotingProcessor.java b/client/src/main/java/org/apache/rocketmq/client/impl/ClientRemotingProcessor.java
index 263b9e1d4..501ad4c20 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/ClientRemotingProcessor.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/ClientRemotingProcessor.java
@@ -24,6 +24,7 @@ import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.impl.factory.MQClientInstance;
import org.apache.rocketmq.client.impl.producer.MQProducerInner;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.producer.RequestFutureHolder;
import org.apache.rocketmq.client.producer.RequestResponseFuture;
import org.apache.rocketmq.common.UtilAll;
@@ -36,6 +37,7 @@ import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.sysflag.MessageSysFlag;
import org.apache.rocketmq.common.utils.NetworkUtil;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.netty.NettyRequestProcessor;
@@ -54,11 +56,9 @@ import org.apache.rocketmq.remoting.protocol.header.GetConsumerStatusRequestHead
import org.apache.rocketmq.remoting.protocol.header.NotifyConsumerIdsChangedRequestHeader;
import org.apache.rocketmq.remoting.protocol.header.ReplyMessageRequestHeader;
import org.apache.rocketmq.remoting.protocol.header.ResetOffsetRequestHeader;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public class ClientRemotingProcessor implements NettyRequestProcessor {
- private final Logger logger = LoggerFactory.getLogger(ClientRemotingProcessor.class);
+ private final InternalLogger log = ClientLogger.getLog();
private final MQClientInstance mqClientFactory;
public ClientRemotingProcessor(final MQClientInstance mqClientFactory) {
@@ -119,13 +119,13 @@ public class ClientRemotingProcessor implements NettyRequestProcessor {
final String addr = RemotingHelper.parseChannelRemoteAddr(ctx.channel());
producer.checkTransactionState(addr, messageExt, requestHeader);
} else {
- logger.debug("checkTransactionState, pick producer by group[{}] failed", group);
+ log.debug("checkTransactionState, pick producer by group[{}] failed", group);
}
} else {
- logger.warn("checkTransactionState, pick producer group failed");
+ log.warn("checkTransactionState, pick producer group failed");
}
} else {
- logger.warn("checkTransactionState, decode message failed");
+ log.warn("checkTransactionState, decode message failed");
}
return null;
@@ -136,12 +136,12 @@ public class ClientRemotingProcessor implements NettyRequestProcessor {
try {
final NotifyConsumerIdsChangedRequestHeader requestHeader =
(NotifyConsumerIdsChangedRequestHeader) request.decodeCommandCustomHeader(NotifyConsumerIdsChangedRequestHeader.class);
- logger.info("receive broker's notification[{}], the consumer group: {} changed, rebalance immediately",
+ log.info("receive broker's notification[{}], the consumer group: {} changed, rebalance immediately",
RemotingHelper.parseChannelRemoteAddr(ctx.channel()),
requestHeader.getConsumerGroup());
this.mqClientFactory.rebalanceImmediately();
} catch (Exception e) {
- logger.error("notifyConsumerIdsChanged exception", UtilAll.exceptionSimpleDesc(e));
+ log.error("notifyConsumerIdsChanged exception", UtilAll.exceptionSimpleDesc(e));
}
return null;
}
@@ -150,7 +150,7 @@ public class ClientRemotingProcessor implements NettyRequestProcessor {
RemotingCommand request) throws RemotingCommandException {
final ResetOffsetRequestHeader requestHeader =
(ResetOffsetRequestHeader) request.decodeCommandCustomHeader(ResetOffsetRequestHeader.class);
- logger.info("invoke reset offset operation from broker. brokerAddr={}, topic={}, group={}, timestamp={}",
+ log.info("invoke reset offset operation from broker. brokerAddr={}, topic={}, group={}, timestamp={}",
RemotingHelper.parseChannelRemoteAddr(ctx.channel()), requestHeader.getTopic(), requestHeader.getGroup(),
requestHeader.getTimestamp());
Map<MessageQueue, Long> offsetTable = new HashMap<>();
@@ -252,7 +252,7 @@ public class ClientRemotingProcessor implements NettyRequestProcessor {
Compressor compressor = CompressorFactory.getCompressor(MessageSysFlag.getCompressionType(sysFlag));
body = compressor.decompress(body);
} catch (IOException e) {
- logger.warn("err when uncompress constant", e);
+ log.warn("err when uncompress constant", e);
}
}
msg.setBody(body);
@@ -261,14 +261,14 @@ public class ClientRemotingProcessor implements NettyRequestProcessor {
MessageAccessor.putProperty(msg, MessageConst.PROPERTY_REPLY_MESSAGE_ARRIVE_TIME, String.valueOf(receiveTime));
msg.setBornTimestamp(requestHeader.getBornTimestamp());
msg.setReconsumeTimes(requestHeader.getReconsumeTimes() == null ? 0 : requestHeader.getReconsumeTimes());
- logger.debug("receive reply message :{}", msg);
+ log.debug("receive reply message :{}", msg);
processReplyMessage(msg);
response.setCode(ResponseCode.SUCCESS);
response.setRemark(null);
} catch (Exception e) {
- logger.warn("unknown err when receiveReplyMsg", e);
+ log.warn("unknown err when receiveReplyMsg", e);
response.setCode(ResponseCode.SYSTEM_ERROR);
response.setRemark("process reply message fail");
}
@@ -288,7 +288,7 @@ public class ClientRemotingProcessor implements NettyRequestProcessor {
}
} else {
String bornHost = replyMsg.getBornHostString();
- logger.warn(String.format("receive reply message, but not matched any request, CorrelationId: %s , reply from host: %s",
+ log.warn(String.format("receive reply message, but not matched any request, CorrelationId: %s , reply from host: %s",
correlationId, bornHost));
}
}
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/MQAdminImpl.java b/client/src/main/java/org/apache/rocketmq/client/impl/MQAdminImpl.java
index 598672255..11247981b 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/MQAdminImpl.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/MQAdminImpl.java
@@ -34,6 +34,7 @@ import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.impl.factory.MQClientInstance;
import org.apache.rocketmq.client.impl.producer.TopicPublishInfo;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.TopicConfig;
import org.apache.rocketmq.common.help.FAQUrl;
@@ -43,6 +44,7 @@ import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageId;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.utils.NetworkUtil;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.InvokeCallback;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.exception.RemotingException;
@@ -54,12 +56,10 @@ import org.apache.rocketmq.remoting.protocol.header.QueryMessageRequestHeader;
import org.apache.rocketmq.remoting.protocol.header.QueryMessageResponseHeader;
import org.apache.rocketmq.remoting.protocol.route.BrokerData;
import org.apache.rocketmq.remoting.protocol.route.TopicRouteData;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public class MQAdminImpl {
- private static final Logger log = LoggerFactory.getLogger(MQAdminImpl.class);
+ private final InternalLogger log = ClientLogger.getLog();
private final MQClientInstance mQClientFactory;
private long timeoutMillis = 6000;
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java b/client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java
index 138fc9a02..f0d6f8dc9 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java
@@ -50,6 +50,7 @@ import org.apache.rocketmq.client.impl.consumer.PullResultExt;
import org.apache.rocketmq.client.impl.factory.MQClientInstance;
import org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl;
import org.apache.rocketmq.client.impl.producer.TopicPublishInfo;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.client.producer.SendStatus;
@@ -73,6 +74,7 @@ import org.apache.rocketmq.common.namesrv.DefaultTopAddressing;
import org.apache.rocketmq.common.namesrv.NameServerUpdateCallback;
import org.apache.rocketmq.common.namesrv.TopAddressing;
import org.apache.rocketmq.common.sysflag.PullSysFlag;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.CommandCustomHeader;
import org.apache.rocketmq.remoting.InvokeCallback;
import org.apache.rocketmq.remoting.RPCHook;
@@ -217,13 +219,11 @@ import org.apache.rocketmq.remoting.protocol.subscription.GroupForbidden;
import org.apache.rocketmq.remoting.protocol.subscription.SubscriptionGroupConfig;
import org.apache.rocketmq.remoting.rpchook.DynamicalExtFieldRPCHook;
import org.apache.rocketmq.remoting.rpchook.StreamTypeRPCHook;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
import static org.apache.rocketmq.remoting.protocol.RemotingSysResponseCode.SUCCESS;
public class MQClientAPIImpl implements NameServerUpdateCallback {
- private final static Logger log = LoggerFactory.getLogger(MQClientAPIImpl.class);
+ private final static InternalLogger log = ClientLogger.getLog();
private static boolean sendSmartMsg =
Boolean.parseBoolean(System.getProperty("org.apache.rocketmq.client.sendSmartMsg", "true"));
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/MQClientManager.java b/client/src/main/java/org/apache/rocketmq/client/impl/MQClientManager.java
index cb52180df..3f4bda7cc 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/MQClientManager.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/MQClientManager.java
@@ -21,12 +21,12 @@ import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.rocketmq.client.ClientConfig;
import org.apache.rocketmq.client.impl.factory.MQClientInstance;
+import org.apache.rocketmq.client.log.ClientLogger;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.RPCHook;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public class MQClientManager {
- private final static Logger log = LoggerFactory.getLogger(MQClientManager.class);
+ private final static InternalLogger log = ClientLogger.getLog();
private static MQClientManager instance = new MQClientManager();
private AtomicInteger factoryIndexGenerator = new AtomicInteger();
private ConcurrentMap<String/* clientId */, MQClientInstance> factoryTable =
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessageConcurrentlyService.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessageConcurrentlyService.java
index b7eddb2a6..9dc2cbef2 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessageConcurrentlyService.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessageConcurrentlyService.java
@@ -35,6 +35,7 @@ import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.ConsumeReturnType;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.client.hook.ConsumeMessageContext;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.stat.ConsumerStatsManager;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.ThreadFactoryImpl;
@@ -43,13 +44,12 @@ import org.apache.rocketmq.common.message.MessageAccessor;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.utils.ThreadUtils;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.protocol.body.CMResult;
import org.apache.rocketmq.remoting.protocol.body.ConsumeMessageDirectlyResult;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public class ConsumeMessageConcurrentlyService implements ConsumeMessageService {
- private static final Logger log = LoggerFactory.getLogger(ConsumeMessageConcurrentlyService.class);
+ private static final InternalLogger log = ClientLogger.getLog();
private final DefaultMQPushConsumerImpl defaultMQPushConsumerImpl;
private final DefaultMQPushConsumer defaultMQPushConsumer;
private final MessageListenerConcurrently messageListener;
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessageOrderlyService.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessageOrderlyService.java
index eb6def1d9..5750263e1 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessageOrderlyService.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessageOrderlyService.java
@@ -33,6 +33,7 @@ import org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyStatus;
import org.apache.rocketmq.client.consumer.listener.ConsumeReturnType;
import org.apache.rocketmq.client.consumer.listener.MessageListenerOrderly;
import org.apache.rocketmq.client.hook.ConsumeMessageContext;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.stat.ConsumerStatsManager;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.ThreadFactoryImpl;
@@ -43,15 +44,14 @@ import org.apache.rocketmq.common.message.MessageConst;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.utils.ThreadUtils;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.protocol.NamespaceUtil;
import org.apache.rocketmq.remoting.protocol.body.CMResult;
import org.apache.rocketmq.remoting.protocol.body.ConsumeMessageDirectlyResult;
import org.apache.rocketmq.remoting.protocol.heartbeat.MessageModel;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public class ConsumeMessageOrderlyService implements ConsumeMessageService {
- private static final Logger log = LoggerFactory.getLogger(ConsumeMessageOrderlyService.class);
+ private static final InternalLogger log = ClientLogger.getLog();
private final static long MAX_TIME_CONSUME_CONTINUOUSLY =
Long.parseLong(System.getProperty("rocketmq.client.maxTimeConsumeContinuously", "60000"));
private final DefaultMQPushConsumerImpl defaultMQPushConsumerImpl;
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessagePopConcurrentlyService.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessagePopConcurrentlyService.java
index 96c0bca3f..f22efc148 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessagePopConcurrentlyService.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessagePopConcurrentlyService.java
@@ -35,6 +35,7 @@ import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.ConsumeReturnType;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.client.hook.ConsumeMessageContext;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.stat.ConsumerStatsManager;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.ThreadFactoryImpl;
@@ -44,14 +45,13 @@ import org.apache.rocketmq.common.message.MessageConst;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.utils.ThreadUtils;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.protocol.body.CMResult;
import org.apache.rocketmq.remoting.protocol.body.ConsumeMessageDirectlyResult;
import org.apache.rocketmq.remoting.protocol.header.ExtraInfoUtil;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public class ConsumeMessagePopConcurrentlyService implements ConsumeMessageService {
- private static final Logger log = LoggerFactory.getLogger(ConsumeMessagePopConcurrentlyService.class);
+ private static final InternalLogger log = ClientLogger.getLog();
private final DefaultMQPushConsumerImpl defaultMQPushConsumerImpl;
private final DefaultMQPushConsumer defaultMQPushConsumer;
private final MessageListenerConcurrently messageListener;
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessagePopOrderlyService.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessagePopOrderlyService.java
index d84a164b3..bd4adc8dd 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessagePopOrderlyService.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessagePopOrderlyService.java
@@ -30,6 +30,7 @@ import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerOrderly;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.stat.ConsumerStatsManager;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.ThreadFactoryImpl;
@@ -40,15 +41,14 @@ import org.apache.rocketmq.common.message.MessageConst;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.utils.ThreadUtils;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.protocol.NamespaceUtil;
import org.apache.rocketmq.remoting.protocol.body.CMResult;
import org.apache.rocketmq.remoting.protocol.body.ConsumeMessageDirectlyResult;
import org.apache.rocketmq.remoting.protocol.heartbeat.MessageModel;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public class ConsumeMessagePopOrderlyService implements ConsumeMessageService {
- private static final Logger log = LoggerFactory.getLogger(ConsumeMessagePopOrderlyService.class);
+ private static final InternalLogger log = ClientLogger.getLog();
private final DefaultMQPushConsumerImpl defaultMQPushConsumerImpl;
private final DefaultMQPushConsumer defaultMQPushConsumer;
private final MessageListenerOrderly messageListener;
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultLitePullConsumerImpl.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultLitePullConsumerImpl.java
index 9a6cab1f0..f8763e049 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultLitePullConsumerImpl.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultLitePullConsumerImpl.java
@@ -55,6 +55,7 @@ import org.apache.rocketmq.client.hook.FilterMessageHook;
import org.apache.rocketmq.client.impl.CommunicationMode;
import org.apache.rocketmq.client.impl.MQClientManager;
import org.apache.rocketmq.client.impl.factory.MQClientInstance;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.ServiceState;
import org.apache.rocketmq.common.ThreadFactoryImpl;
@@ -64,6 +65,7 @@ import org.apache.rocketmq.common.help.FAQUrl;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.sysflag.PullSysFlag;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.apache.rocketmq.remoting.protocol.NamespaceUtil;
@@ -72,12 +74,10 @@ import org.apache.rocketmq.remoting.protocol.filter.FilterAPI;
import org.apache.rocketmq.remoting.protocol.heartbeat.ConsumeType;
import org.apache.rocketmq.remoting.protocol.heartbeat.MessageModel;
import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public class DefaultLitePullConsumerImpl implements MQConsumerInner {
- private static final Logger log = LoggerFactory.getLogger(DefaultLitePullConsumerImpl.class);
+ private final InternalLogger log = ClientLogger.getLog();
private final long consumerStartTimestamp = System.currentTimeMillis();
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultMQPullConsumerImpl.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultMQPullConsumerImpl.java
index b5c854a9c..1b41499a9 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultMQPullConsumerImpl.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultMQPullConsumerImpl.java
@@ -42,6 +42,7 @@ import org.apache.rocketmq.client.hook.FilterMessageHook;
import org.apache.rocketmq.client.impl.CommunicationMode;
import org.apache.rocketmq.client.impl.MQClientManager;
import org.apache.rocketmq.client.impl.factory.MQClientInstance;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.ServiceState;
import org.apache.rocketmq.common.UtilAll;
@@ -54,6 +55,7 @@ import org.apache.rocketmq.common.message.MessageConst;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.sysflag.PullSysFlag;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingException;
@@ -63,8 +65,6 @@ import org.apache.rocketmq.remoting.protocol.filter.FilterAPI;
import org.apache.rocketmq.remoting.protocol.heartbeat.ConsumeType;
import org.apache.rocketmq.remoting.protocol.heartbeat.MessageModel;
import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
/**
* This class will be removed in 2022, and a better implementation {@link DefaultLitePullConsumerImpl} is recommend to use
@@ -72,7 +72,7 @@ import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
*/
@Deprecated
public class DefaultMQPullConsumerImpl implements MQConsumerInner {
- private static final Logger log = LoggerFactory.getLogger(DefaultMQPullConsumerImpl.class);
+ private final InternalLogger log = ClientLogger.getLog();
private final DefaultMQPullConsumer defaultMQPullConsumer;
private final long consumerStartTimestamp = System.currentTimeMillis();
private final RPCHook rpcHook;
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultMQPushConsumerImpl.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultMQPushConsumerImpl.java
index 353f4de01..53262d63c 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultMQPushConsumerImpl.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/DefaultMQPushConsumerImpl.java
@@ -58,6 +58,7 @@ import org.apache.rocketmq.client.impl.CommunicationMode;
import org.apache.rocketmq.client.impl.FindBrokerResult;
import org.apache.rocketmq.client.impl.MQClientManager;
import org.apache.rocketmq.client.impl.factory.MQClientInstance;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.stat.ConsumerStatsManager;
import org.apache.rocketmq.common.KeyBuilder;
import org.apache.rocketmq.common.MixAll;
@@ -71,6 +72,7 @@ import org.apache.rocketmq.common.message.MessageConst;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.sysflag.PullSysFlag;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingException;
@@ -90,8 +92,7 @@ import org.apache.rocketmq.remoting.protocol.heartbeat.MessageModel;
import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
import org.apache.rocketmq.remoting.protocol.route.BrokerData;
import org.apache.rocketmq.remoting.protocol.route.TopicRouteData;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+
public class DefaultMQPushConsumerImpl implements MQConsumerInner {
/**
@@ -108,7 +109,7 @@ public class DefaultMQPushConsumerImpl implements MQConsumerInner {
private static final long PULL_TIME_DELAY_MILLS_WHEN_SUSPEND = 1000;
private static final long BROKER_SUSPEND_MAX_TIME_MILLIS = 1000 * 15;
private static final long CONSUMER_TIMEOUT_MILLIS_WHEN_SUSPEND = 1000 * 30;
- private static final Logger log = LoggerFactory.getLogger(DefaultMQPushConsumerImpl.class);
+ private final InternalLogger log = ClientLogger.getLog();
private final DefaultMQPushConsumer defaultMQPushConsumer;
private final RebalanceImpl rebalanceImpl = new RebalancePushImpl(this);
private final ArrayList<FilterMessageHook> filterMessageHookList = new ArrayList<>();
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ProcessQueue.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ProcessQueue.java
index 7857d4a2d..da2832591 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ProcessQueue.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ProcessQueue.java
@@ -28,12 +28,12 @@ import java.util.concurrent.locks.ReentrantLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.message.MessageAccessor;
import org.apache.rocketmq.common.message.MessageConst;
import org.apache.rocketmq.common.message.MessageExt;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.protocol.body.ProcessQueueInfo;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
/**
* Queue consumption snapshot
@@ -43,7 +43,7 @@ public class ProcessQueue {
Long.parseLong(System.getProperty("rocketmq.client.rebalance.lockMaxLiveTime", "30000"));
public final static long REBALANCE_LOCK_INTERVAL = Long.parseLong(System.getProperty("rocketmq.client.rebalance.lockInterval", "20000"));
private final static long PULL_MAX_IDLE_TIME = Long.parseLong(System.getProperty("rocketmq.client.pull.pullMaxIdleTime", "120000"));
- private final Logger log = LoggerFactory.getLogger(ProcessQueue.class);
+ private final InternalLogger log = ClientLogger.getLog();
private final ReadWriteLock treeMapLock = new ReentrantReadWriteLock();
private final TreeMap<Long, MessageExt> msgTreeMap = new TreeMap<>();
private final AtomicLong msgCount = new AtomicLong();
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/PullAPIWrapper.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/PullAPIWrapper.java
index a4fbf367f..dd7b9af85 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/PullAPIWrapper.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/PullAPIWrapper.java
@@ -34,6 +34,7 @@ import org.apache.rocketmq.client.hook.FilterMessageHook;
import org.apache.rocketmq.client.impl.CommunicationMode;
import org.apache.rocketmq.client.impl.FindBrokerResult;
import org.apache.rocketmq.client.impl.factory.MQClientInstance;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.MQVersion;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.filter.ExpressionType;
@@ -44,16 +45,15 @@ import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.sysflag.MessageSysFlag;
import org.apache.rocketmq.common.sysflag.PullSysFlag;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.apache.rocketmq.remoting.protocol.header.PopMessageRequestHeader;
import org.apache.rocketmq.remoting.protocol.header.PullMessageRequestHeader;
import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
import org.apache.rocketmq.remoting.protocol.route.TopicRouteData;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public class PullAPIWrapper {
- private static final Logger log = LoggerFactory.getLogger(PullAPIWrapper.class);
+ private final InternalLogger log = ClientLogger.getLog();
private final MQClientInstance mQClientFactory;
private final String consumerGroup;
private final boolean unitMode;
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/PullMessageService.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/PullMessageService.java
index 5adb3663a..a5f3379f9 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/PullMessageService.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/PullMessageService.java
@@ -22,14 +22,14 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
import org.apache.rocketmq.client.impl.factory.MQClientInstance;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.ServiceThread;
import org.apache.rocketmq.common.message.MessageRequestMode;
import org.apache.rocketmq.common.utils.ThreadUtils;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
public class PullMessageService extends ServiceThread {
- private final Logger logger = LoggerFactory.getLogger(PullMessageService.class);
+ private final InternalLogger log = ClientLogger.getLog();
private final LinkedBlockingQueue<MessageRequest> messageRequestQueue = new LinkedBlockingQueue<>();
private final MQClientInstance mQClientFactory;
@@ -54,7 +54,7 @@ public class PullMessageService extends ServiceThread {
}
}, timeDelay, TimeUnit.MILLISECONDS);
} else {
- logger.warn("PullMessageServiceScheduledThread has shutdown");
+ log.warn("PullMessageServiceScheduledThread has shutdown");
}
}
@@ -62,7 +62,7 @@ public class PullMessageService extends ServiceThread {
try {
this.messageRequestQueue.put(pullRequest);
} catch (InterruptedException e) {
- logger.error("executePullRequestImmediately pullRequestQueue.put", e);
+ log.error("executePullRequestImmediately pullRequestQueue.put", e);
}
}
@@ -75,7 +75,7 @@ public class PullMessageService extends ServiceThread {
}
}, timeDelay, TimeUnit.MILLISECONDS);
} else {
- logger.warn("PullMessageServiceScheduledThread has shutdown");
+ log.warn("PullMessageServiceScheduledThread has shutdown");
}
}
@@ -83,7 +83,7 @@ public class PullMessageService extends ServiceThread {
try {
this.messageRequestQueue.put(pullRequest);
} catch (InterruptedException e) {
- logger.error("executePullRequestImmediately pullRequestQueue.put", e);
+ log.error("executePullRequestImmediately pullRequestQueue.put", e);
}
}
@@ -91,7 +91,7 @@ public class PullMessageService extends ServiceThread {
if (!isStopped()) {
this.scheduledExecutorService.schedule(r, timeDelay, TimeUnit.MILLISECONDS);
} else {
- logger.warn("PullMessageServiceScheduledThread has shutdown");
+ log.warn("PullMessageServiceScheduledThread has shutdown");
}
}
@@ -105,7 +105,7 @@ public class PullMessageService extends ServiceThread {
DefaultMQPushConsumerImpl impl = (DefaultMQPushConsumerImpl) consumer;
impl.pullMessage(pullRequest);
} else {
- logger.warn("No matched consumer for the PullRequest {}, drop it", pullRequest);
+ log.warn("No matched consumer for the PullRequest {}, drop it", pullRequest);
}
}
@@ -115,13 +115,13 @@ public class PullMessageService extends ServiceThread {
DefaultMQPushConsumerImpl impl = (DefaultMQPushConsumerImpl) consumer;
impl.popMessage(popRequest);
} else {
- logger.warn("No matched consumer for the PopRequest {}, drop it", popRequest);
+ log.warn("No matched consumer for the PopRequest {}, drop it", popRequest);
}
}
@Override
public void run() {
- logger.info(this.getServiceName() + " service started");
+ log.info(this.getServiceName() + " service started");
while (!this.isStopped()) {
try {
@@ -133,11 +133,11 @@ public class PullMessageService extends ServiceThread {
}
} catch (InterruptedException ignored) {
} catch (Exception e) {
- logger.error("Pull Message Service Run Method exception", e);
+ log.error("Pull Message Service Run Method exception", e);
}
}
- logger.info(this.getServiceName() + " service end");
+ log.info(this.getServiceName() + " service end");
}
@Override
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceImpl.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceImpl.java
index 0c91eaae0..45a252197 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceImpl.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceImpl.java
@@ -31,11 +31,13 @@ import org.apache.rocketmq.client.consumer.AllocateMessageQueueStrategy;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.impl.FindBrokerResult;
import org.apache.rocketmq.client.impl.factory.MQClientInstance;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.KeyBuilder;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.message.MessageQueueAssignment;
import org.apache.rocketmq.common.message.MessageRequestMode;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.exception.RemotingTimeoutException;
import org.apache.rocketmq.remoting.protocol.body.LockBatchRequestBody;
import org.apache.rocketmq.remoting.protocol.body.UnlockBatchRequestBody;
@@ -43,11 +45,9 @@ import org.apache.rocketmq.remoting.protocol.filter.FilterAPI;
import org.apache.rocketmq.remoting.protocol.heartbeat.ConsumeType;
import org.apache.rocketmq.remoting.protocol.heartbeat.MessageModel;
import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public abstract class RebalanceImpl {
- protected static final Logger log = LoggerFactory.getLogger(RebalanceImpl.class);
+ protected static final InternalLogger log = ClientLogger.getLog();
protected final ConcurrentMap<MessageQueue, ProcessQueue> processQueueTable = new ConcurrentHashMap<>(64);
protected final ConcurrentMap<MessageQueue, PopProcessQueue> popProcessQueueTable = new ConcurrentHashMap<>(64);
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceService.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceService.java
index 394381f9d..c8f8ab140 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceService.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceService.java
@@ -17,15 +17,15 @@
package org.apache.rocketmq.client.impl.consumer;
import org.apache.rocketmq.client.impl.factory.MQClientInstance;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.ServiceThread;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
public class RebalanceService extends ServiceThread {
private static long waitInterval =
Long.parseLong(System.getProperty(
"rocketmq.client.rebalance.waitInterval", "20000"));
- private final Logger log = LoggerFactory.getLogger(RebalanceService.class);
+ private final InternalLogger log = ClientLogger.getLog();
private final MQClientInstance mqClientFactory;
public RebalanceService(MQClientInstance mqClientFactory) {
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java b/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java
index 843134c3f..beb220488 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java
@@ -52,6 +52,7 @@ import org.apache.rocketmq.client.impl.consumer.RebalanceService;
import org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl;
import org.apache.rocketmq.client.impl.producer.MQProducerInner;
import org.apache.rocketmq.client.impl.producer.TopicPublishInfo;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.stat.ConsumerStatsManager;
import org.apache.rocketmq.common.MQVersion;
@@ -64,6 +65,7 @@ import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.message.MessageQueueAssignment;
import org.apache.rocketmq.common.topic.TopicValidator;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.apache.rocketmq.remoting.netty.NettyClientConfig;
@@ -80,14 +82,12 @@ import org.apache.rocketmq.remoting.protocol.heartbeat.SubscriptionData;
import org.apache.rocketmq.remoting.protocol.route.BrokerData;
import org.apache.rocketmq.remoting.protocol.route.QueueData;
import org.apache.rocketmq.remoting.protocol.route.TopicRouteData;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
import static org.apache.rocketmq.remoting.rpc.ClientMetadata.topicRouteData2EndpointsForStaticTopic;
public class MQClientInstance {
private final static long LOCK_TIMEOUT_MILLIS = 3000;
- private final static Logger log = LoggerFactory.getLogger(MQClientInstance.class);
+ private final static InternalLogger log = ClientLogger.getLog();
private final ClientConfig clientConfig;
private final String clientId;
private final long bootTimestamp = System.currentTimeMillis();
diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java b/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java
index a867297f4..8c669ace1 100644
--- a/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java
+++ b/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java
@@ -51,6 +51,7 @@ import org.apache.rocketmq.client.impl.CommunicationMode;
import org.apache.rocketmq.client.impl.MQClientManager;
import org.apache.rocketmq.client.impl.factory.MQClientInstance;
import org.apache.rocketmq.client.latency.MQFaultStrategy;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.LocalTransactionExecuter;
import org.apache.rocketmq.client.producer.LocalTransactionState;
@@ -84,6 +85,7 @@ import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.message.MessageType;
import org.apache.rocketmq.common.sysflag.MessageSysFlag;
import org.apache.rocketmq.common.utils.CorrelationIdUtil;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.exception.RemotingConnectException;
import org.apache.rocketmq.remoting.exception.RemotingException;
@@ -93,12 +95,10 @@ import org.apache.rocketmq.remoting.protocol.NamespaceUtil;
import org.apache.rocketmq.remoting.protocol.header.CheckTransactionStateRequestHeader;
import org.apache.rocketmq.remoting.protocol.header.EndTransactionRequestHeader;
import org.apache.rocketmq.remoting.protocol.header.SendMessageRequestHeader;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public class DefaultMQProducerImpl implements MQProducerInner {
- private final Logger log = LoggerFactory.getLogger(DefaultMQProducerImpl.class);
+ private final InternalLogger log = ClientLogger.getLog();
private final Random random = new Random();
private final DefaultMQProducer defaultMQProducer;
private final ConcurrentMap<String/* topic */, TopicPublishInfo> topicPublishInfoTable =
diff --git a/client/src/main/java/org/apache/rocketmq/client/latency/MQFaultStrategy.java b/client/src/main/java/org/apache/rocketmq/client/latency/MQFaultStrategy.java
index c4ca85e48..a8c7b0747 100644
--- a/client/src/main/java/org/apache/rocketmq/client/latency/MQFaultStrategy.java
+++ b/client/src/main/java/org/apache/rocketmq/client/latency/MQFaultStrategy.java
@@ -18,12 +18,12 @@
package org.apache.rocketmq.client.latency;
import org.apache.rocketmq.client.impl.producer.TopicPublishInfo;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.message.MessageQueue;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
public class MQFaultStrategy {
- private final static Logger log = LoggerFactory.getLogger(MQFaultStrategy.class);
+ private final static InternalLogger log = ClientLogger.getLog();
private final LatencyFaultTolerance<String> latencyFaultTolerance = new LatencyFaultToleranceImpl();
private boolean sendLatencyFaultEnable = false;
diff --git a/client/src/main/java/org/apache/rocketmq/client/log/ClientLogger.java b/client/src/main/java/org/apache/rocketmq/client/log/ClientLogger.java
new file mode 100644
index 000000000..7ee2ebaa4
--- /dev/null
+++ b/client/src/main/java/org/apache/rocketmq/client/log/ClientLogger.java
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.rocketmq.client.log;
+
+import org.apache.rocketmq.common.constant.LoggerName;
+import org.apache.rocketmq.logging.InnerLoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
+import org.apache.rocketmq.logging.inner.Appender;
+import org.apache.rocketmq.logging.inner.Layout;
+import org.apache.rocketmq.logging.inner.Level;
+import org.apache.rocketmq.logging.inner.Logger;
+import org.apache.rocketmq.logging.inner.LoggingBuilder;
+import org.apache.rocketmq.logging.inner.LoggingEvent;
+import org.apache.rocketmq.remoting.common.RemotingHelper;
+
+public class ClientLogger {
+
+ public static final String CLIENT_LOG_USESLF4J = "rocketmq.client.logUseSlf4j";
+ public static final String CLIENT_LOG_ROOT = "rocketmq.client.logRoot";
+ public static final String CLIENT_LOG_MAXINDEX = "rocketmq.client.logFileMaxIndex";
+ public static final String CLIENT_LOG_FILESIZE = "rocketmq.client.logFileMaxSize";
+ public static final String CLIENT_LOG_LEVEL = "rocketmq.client.logLevel";
+ public static final String CLIENT_LOG_ADDITIVE = "rocketmq.client.log.additive";
+ public static final String CLIENT_LOG_FILENAME = "rocketmq.client.logFileName";
+ public static final String CLIENT_LOG_ASYNC_QUEUESIZE = "rocketmq.client.logAsyncQueueSize";
+ public static final String ROCKETMQ_CLIENT_APPENDER_NAME = "RocketmqClientAppender";
+
+ private static final InternalLogger CLIENT_LOGGER;
+
+ private static final boolean CLIENT_USE_SLF4J;
+
+ private static Appender appenderProxy = new AppenderProxy();
+
+ //private static Appender rocketmqClientAppender = null;
+
+ static {
+ CLIENT_USE_SLF4J = Boolean.parseBoolean(System.getProperty(CLIENT_LOG_USESLF4J, "false"));
+ if (!CLIENT_USE_SLF4J) {
+ InternalLoggerFactory.setCurrentLoggerType(InnerLoggerFactory.LOGGER_INNER);
+ CLIENT_LOGGER = createLogger(LoggerName.CLIENT_LOGGER_NAME);
+ createLogger(LoggerName.COMMON_LOGGER_NAME);
+ createLogger(RemotingHelper.ROCKETMQ_REMOTING);
+ Logger.getRootLogger().addAppender(appenderProxy);
+ } else {
+ CLIENT_LOGGER = InternalLoggerFactory.getLogger(LoggerName.CLIENT_LOGGER_NAME);
+ }
+ }
+
+ private static synchronized Appender createClientAppender() {
+ String clientLogRoot = System.getProperty(CLIENT_LOG_ROOT, System.getProperty("user.home") + "/logs/rocketmqlogs");
+ String clientLogMaxIndex = System.getProperty(CLIENT_LOG_MAXINDEX, "10");
+ String clientLogFileName = System.getProperty(CLIENT_LOG_FILENAME, "rocketmq_client.log");
+ String maxFileSize = System.getProperty(CLIENT_LOG_FILESIZE, "1073741824");
+ String asyncQueueSize = System.getProperty(CLIENT_LOG_ASYNC_QUEUESIZE, "1024");
+
+ String logFileName = clientLogRoot + "/" + clientLogFileName;
+
+ int maxFileIndex = Integer.parseInt(clientLogMaxIndex);
+ int queueSize = Integer.parseInt(asyncQueueSize);
+
+ Layout layout = LoggingBuilder.newLayoutBuilder().withDefaultLayout().build();
+
+ Appender rocketmqClientAppender = LoggingBuilder.newAppenderBuilder()
+ .withRollingFileAppender(logFileName, maxFileSize, maxFileIndex)
+ .withAsync(false, queueSize).withName(ROCKETMQ_CLIENT_APPENDER_NAME).withLayout(layout).build();
+
+ return rocketmqClientAppender;
+ }
+
+ private static InternalLogger createLogger(final String loggerName) {
+ String clientLogLevel = System.getProperty(CLIENT_LOG_LEVEL, "INFO");
+ boolean additive = "true".equalsIgnoreCase(System.getProperty(CLIENT_LOG_ADDITIVE));
+ InternalLogger logger = InternalLoggerFactory.getLogger(loggerName);
+ InnerLoggerFactory.InnerLogger innerLogger = (InnerLoggerFactory.InnerLogger) logger;
+ Logger realLogger = innerLogger.getLogger();
+
+ //if (rocketmqClientAppender == null) {
+ // createClientAppender();
+ //}
+
+ realLogger.addAppender(appenderProxy);
+ realLogger.setLevel(Level.toLevel(clientLogLevel));
+ realLogger.setAdditivity(additive);
+ return logger;
+ }
+
+ public static InternalLogger getLog() {
+ return CLIENT_LOGGER;
+ }
+
+ static class AppenderProxy extends Appender {
+ private Appender proxy;
+
+ @Override
+ protected void append(LoggingEvent event) {
+ if (null == proxy) {
+ proxy = ClientLogger.createClientAppender();
+ }
+ proxy.doAppend(event);
+ }
+
+ @Override
+ public void close() {
+ if (null != proxy) {
+ proxy.close();
+ }
+ }
+ }
+}
diff --git a/client/src/main/java/org/apache/rocketmq/client/producer/DefaultMQProducer.java b/client/src/main/java/org/apache/rocketmq/client/producer/DefaultMQProducer.java
index cb91fe4db..a311f86d6 100644
--- a/client/src/main/java/org/apache/rocketmq/client/producer/DefaultMQProducer.java
+++ b/client/src/main/java/org/apache/rocketmq/client/producer/DefaultMQProducer.java
@@ -30,6 +30,7 @@ import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.exception.RequestTimeoutException;
import org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.trace.AsyncTraceDispatcher;
import org.apache.rocketmq.client.trace.TraceDispatcher;
import org.apache.rocketmq.client.trace.hook.EndTransactionTraceHookImpl;
@@ -41,11 +42,10 @@ import org.apache.rocketmq.common.message.MessageClientIDSetter;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.topic.TopicValidator;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.apache.rocketmq.remoting.protocol.ResponseCode;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
/**
* This class is the entry point for applications intending to send messages. </p>
@@ -65,7 +65,7 @@ public class DefaultMQProducer extends ClientConfig implements MQProducer {
* Wrapping internal implementations for virtually all methods presented in this class.
*/
protected final transient DefaultMQProducerImpl defaultMQProducerImpl;
- private final Logger logger = LoggerFactory.getLogger(DefaultMQProducer.class);
+ private final InternalLogger log = ClientLogger.getLog();
private final Set<Integer> retryResponseCodes = new CopyOnWriteArraySet<>(Arrays.asList(
ResponseCode.TOPIC_NOT_EXIST,
ResponseCode.SERVICE_NOT_AVAILABLE,
@@ -272,7 +272,7 @@ public class DefaultMQProducer extends ClientConfig implements MQProducer {
this.defaultMQProducerImpl.registerEndTransactionHook(
new EndTransactionTraceHookImpl(traceDispatcher));
} catch (Throwable e) {
- logger.error("system mqtrace hook init failed ,maybe can't send msg trace data");
+ log.error("system mqtrace hook init failed ,maybe can't send msg trace data");
}
}
}
@@ -301,7 +301,7 @@ public class DefaultMQProducer extends ClientConfig implements MQProducer {
try {
traceDispatcher.start(this.getNamesrvAddr(), this.getAccessChannel());
} catch (MQClientException e) {
- logger.warn("trace dispatcher start failed ", e);
+ log.warn("trace dispatcher start failed ", e);
}
}
}
diff --git a/client/src/main/java/org/apache/rocketmq/client/producer/RequestFutureHolder.java b/client/src/main/java/org/apache/rocketmq/client/producer/RequestFutureHolder.java
index 0a89d548e..100890d87 100644
--- a/client/src/main/java/org/apache/rocketmq/client/producer/RequestFutureHolder.java
+++ b/client/src/main/java/org/apache/rocketmq/client/producer/RequestFutureHolder.java
@@ -31,12 +31,12 @@ import java.util.concurrent.TimeUnit;
import org.apache.rocketmq.client.common.ClientErrorCode;
import org.apache.rocketmq.client.exception.RequestTimeoutException;
import org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.ThreadFactoryImpl;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
public class RequestFutureHolder {
- private static final Logger log = LoggerFactory.getLogger(RequestFutureHolder.class);
+ private static InternalLogger log = ClientLogger.getLog();
private static final RequestFutureHolder INSTANCE = new RequestFutureHolder();
private ConcurrentHashMap<String, RequestResponseFuture> requestFutureTable = new ConcurrentHashMap<>();
private final Set<DefaultMQProducerImpl> producerSet = new HashSet<>();
diff --git a/client/src/main/java/org/apache/rocketmq/client/stat/ConsumerStatsManager.java b/client/src/main/java/org/apache/rocketmq/client/stat/ConsumerStatsManager.java
index 9d50409ab..5c87fb01f 100644
--- a/client/src/main/java/org/apache/rocketmq/client/stat/ConsumerStatsManager.java
+++ b/client/src/main/java/org/apache/rocketmq/client/stat/ConsumerStatsManager.java
@@ -18,14 +18,14 @@
package org.apache.rocketmq.client.stat;
import java.util.concurrent.ScheduledExecutorService;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.common.stats.StatsItemSet;
import org.apache.rocketmq.common.stats.StatsSnapshot;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.protocol.body.ConsumeStatus;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public class ConsumerStatsManager {
- private static final Logger log = LoggerFactory.getLogger(ConsumerStatsManager.class);
+ private static final InternalLogger log = ClientLogger.getLog();
private static final String TOPIC_AND_GROUP_CONSUME_OK_TPS = "CONSUME_OK_TPS";
private static final String TOPIC_AND_GROUP_CONSUME_FAILED_TPS = "CONSUME_FAILED_TPS";
diff --git a/client/src/main/java/org/apache/rocketmq/client/trace/AsyncTraceDispatcher.java b/client/src/main/java/org/apache/rocketmq/client/trace/AsyncTraceDispatcher.java
index 0da760cf9..67b8a8a05 100644
--- a/client/src/main/java/org/apache/rocketmq/client/trace/AsyncTraceDispatcher.java
+++ b/client/src/main/java/org/apache/rocketmq/client/trace/AsyncTraceDispatcher.java
@@ -35,6 +35,7 @@ import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl;
import org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl;
import org.apache.rocketmq.client.impl.producer.TopicPublishInfo;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.MessageQueueSelector;
import org.apache.rocketmq.client.producer.SendCallback;
@@ -44,14 +45,14 @@ import org.apache.rocketmq.common.UtilAll;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.topic.TopicValidator;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.RPCHook;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
import static org.apache.rocketmq.client.trace.TraceConstants.TRACE_INSTANCE_NAME;
public class AsyncTraceDispatcher implements TraceDispatcher {
- private final static Logger log = LoggerFactory.getLogger(AsyncTraceDispatcher.class);
+
+ private final static InternalLogger log = ClientLogger.getLog();
private final static AtomicInteger COUNTER = new AtomicInteger();
private final int queueSize;
private final int batchSize;
diff --git a/client/src/main/resources/rmq.client.logback.xml b/client/src/main/resources/rmq.client.logback.xml
deleted file mode 100644
index 5d398b434..000000000
--- a/client/src/main/resources/rmq.client.logback.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<configuration debug="false">
- <conversionRule conversionWord="pid" converterClass="io.github.aliyunmq.logback.extensions.ProcessIdConverter"/>
- <appender name="CustomConsoleAppender" class="io.github.aliyunmq.logback.extensions.CustomConsoleAppender">
- <encoder>
- <pattern>%yellow(%d{yyy-MM-dd HH:mm:ss.SSS,GMT+8}) %highlight(%-5p) %boldWhite([%pid]) %magenta([%t]) %boldGreen([%logger{12}#%M:%L]) - %m%n
- </pattern>
- <charset class="java.nio.charset.Charset">UTF-8</charset>
- </encoder>
- </appender>
- <appender name="DefaultAppender" class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
- <append>true</append>
- <File>
- ${rocketmq.log.root:-${user.home}${file.separator}logs${file.separator}rocketmqlogs}${file.separator}rocketmq_client.log
- </File>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
- <FileNamePattern>
- ${rocketmq.log.root:-${user.home}${file.separator}logs${file.separator}rocketmqlogs}${file.separator}other_days${file.separator}rocketmq_client-%i.log.gz
- </FileNamePattern>
- <minIndex>1</minIndex>
- <maxIndex>${rocketmq.log.file.maxIndex:-10}</maxIndex>
- </rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
- <maxFileSize>64MB</maxFileSize>
- </triggeringPolicy>
- <encoder class="org.apache.rocketmq.shade.ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <pattern>%d{yyy-MM-dd HH:mm:ss.SSS,GMT+8} %-5p [%pid] [%t] [%logger{12}#%M:%L] - %m%n</pattern>
- <charset class="java.nio.charset.Charset">UTF-8</charset>
- </encoder>
- </appender>
- <root level="${rocketmq.log.level:-info}">
- <appender-ref ref="CustomConsoleAppender"/>
- <appender-ref ref="DefaultAppender" additivity="false"/>
- </root>
- <!-- ref: https://github.com/grpc/grpc-java/issues/3033 -->
- <!-- <logger name="io.grpc" level="warn"/> -->
-</configuration>
\ No newline at end of file
diff --git a/client/src/test/resources/log4j2.xml b/client/src/test/resources/log4j2.xml
new file mode 100644
index 000000000..52cf2a886
--- /dev/null
+++ b/client/src/test/resources/log4j2.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
+ ~ contributor license agreements. See the NOTICE file distributed with
+ ~ this work for additional information regarding copyright ownership.
+ ~ The ASF licenses this file to You under the Apache License, Version 2.0
+ ~ (the "License"); you may not use this file except in compliance with
+ ~ the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<Configuration status="WARN">
+ <Appenders>
+ <Console name="Console" target="SYSTEM_OUT">
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
+ </Console>
+ </Appenders>
+ <Loggers>
+ <Root level="ERROR">
+ <AppenderRef ref="Console"/>
+ </Root>
+ </Loggers>
+</Configuration>
\ No newline at end of file
diff --git a/common/BUILD.bazel b/common/BUILD.bazel
index f85bda7ee..8370023d2 100644
--- a/common/BUILD.bazel
+++ b/common/BUILD.bazel
@@ -21,6 +21,7 @@ java_library(
srcs = glob(["src/main/java/**/*.java"]),
visibility = ["//visibility:public"],
deps = [
+ "//logging",
"@maven//:com_alibaba_fastjson",
"@maven//:com_github_luben_zstd_jni",
"@maven//:com_google_guava_guava",
@@ -37,7 +38,6 @@ java_library(
"@maven//:io_opentelemetry_opentelemetry_sdk_metrics",
"@maven//:org_apache_commons_commons_lang3",
"@maven//:org_lz4_lz4_java",
- "@maven//:io_github_aliyun_mq_rocketmq_slf4j_api",
],
)
diff --git a/common/pom.xml b/common/pom.xml
index c62f86384..250b2584e 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -32,6 +32,10 @@
</properties>
<dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rocketmq-logging</artifactId>
+ </dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
@@ -60,6 +64,11 @@
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.7</version>
+ </dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
@@ -92,13 +101,5 @@
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</dependency>
- <dependency>
- <groupId>io.github.aliyun-mq</groupId>
- <artifactId>rocketmq-slf4j-api</artifactId>
- </dependency>
- <dependency>
- <groupId>io.github.aliyun-mq</groupId>
- <artifactId>rocketmq-logback-classic</artifactId>
- </dependency>
</dependencies>
</project>
diff --git a/common/src/main/java/org/apache/rocketmq/common/AbstractBrokerRunnable.java b/common/src/main/java/org/apache/rocketmq/common/AbstractBrokerRunnable.java
index 8bce59d76..fa799be9c 100644
--- a/common/src/main/java/org/apache/rocketmq/common/AbstractBrokerRunnable.java
+++ b/common/src/main/java/org/apache/rocketmq/common/AbstractBrokerRunnable.java
@@ -17,6 +17,8 @@
package org.apache.rocketmq.common;
+import org.apache.rocketmq.logging.InnerLoggerFactory;
+
public abstract class AbstractBrokerRunnable implements Runnable {
protected final BrokerIdentity brokerIdentity;
@@ -33,7 +35,7 @@ public abstract class AbstractBrokerRunnable implements Runnable {
public void run() {
if (brokerIdentity.isInBrokerContainer()) {
// set threadlocal broker identity to forward logging to corresponding broker
-// InnerLoggerFactory.BROKER_IDENTITY.set(brokerIdentity.getCanonicalName());
+ InnerLoggerFactory.BROKER_IDENTITY.set(brokerIdentity.getCanonicalName());
}
run2();
}
diff --git a/common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java b/common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java
index 1c9b301d8..714439785 100644
--- a/common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java
+++ b/common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java
@@ -23,11 +23,11 @@ import org.apache.rocketmq.common.constant.PermName;
import org.apache.rocketmq.common.message.MessageRequestMode;
import org.apache.rocketmq.common.topic.TopicValidator;
import org.apache.rocketmq.common.utils.NetworkUtil;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class BrokerConfig extends BrokerIdentity {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
private String brokerConfigPath = null;
diff --git a/common/src/main/java/org/apache/rocketmq/common/BrokerIdentity.java b/common/src/main/java/org/apache/rocketmq/common/BrokerIdentity.java
index be8cf7954..74f8126f2 100644
--- a/common/src/main/java/org/apache/rocketmq/common/BrokerIdentity.java
+++ b/common/src/main/java/org/apache/rocketmq/common/BrokerIdentity.java
@@ -24,13 +24,14 @@ import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.rocketmq.common.annotation.ImportantField;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InnerLoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class BrokerIdentity {
private static final String DEFAULT_CLUSTER_NAME = "DefaultCluster";
- protected static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ protected static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
private static String localHostName;
@@ -116,7 +117,7 @@ public class BrokerIdentity {
public String getCanonicalName() {
if (isBrokerContainer) {
-// return InnerLoggerFactory.BROKER_CONTAINER_NAME;
+ return InnerLoggerFactory.BROKER_CONTAINER_NAME;
}
return this.getBrokerClusterName() + "_" + this.getBrokerName() + "_" + this.getBrokerId();
}
diff --git a/common/src/main/java/org/apache/rocketmq/common/ConfigManager.java b/common/src/main/java/org/apache/rocketmq/common/ConfigManager.java
index 9fc3304e4..13d5b6be4 100644
--- a/common/src/main/java/org/apache/rocketmq/common/ConfigManager.java
+++ b/common/src/main/java/org/apache/rocketmq/common/ConfigManager.java
@@ -19,11 +19,11 @@ package org.apache.rocketmq.common;
import java.io.IOException;
import java.util.Map;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public abstract class ConfigManager {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
public abstract String encode();
diff --git a/common/src/main/java/org/apache/rocketmq/common/MixAll.java b/common/src/main/java/org/apache/rocketmq/common/MixAll.java
index 6abf3e7a8..f18df48c1 100644
--- a/common/src/main/java/org/apache/rocketmq/common/MixAll.java
+++ b/common/src/main/java/org/apache/rocketmq/common/MixAll.java
@@ -20,8 +20,8 @@ import org.apache.rocketmq.common.annotation.ImportantField;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.help.FAQUrl;
import org.apache.rocketmq.common.utils.IOTinyUtils;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import java.io.ByteArrayInputStream;
import java.io.File;
@@ -103,7 +103,7 @@ public class MixAll {
public static final String ZONE_NAME = "__ZONE_NAME";
public static final String ZONE_MODE = "__ZONE_MODE";
- private static final Logger log = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
public static final String LOGICAL_QUEUE_MOCK_BROKER_PREFIX = "__syslo__";
public static final String METADATA_SCOPE_GLOBAL = "__global__";
public static final String LOGICAL_QUEUE_MOCK_BROKER_NAME_NOT_EXIST = "__syslo__none__";
@@ -252,11 +252,11 @@ public class MixAll {
return null;
}
- public static void printObjectProperties(final Logger logger, final Object object) {
+ public static void printObjectProperties(final InternalLogger logger, final Object object) {
printObjectProperties(logger, object, false);
}
- public static void printObjectProperties(final Logger logger, final Object object,
+ public static void printObjectProperties(final InternalLogger logger, final Object object,
final boolean onlyImportantField) {
Field[] fields = object.getClass().getDeclaredFields();
for (Field field : fields) {
diff --git a/common/src/main/java/org/apache/rocketmq/common/ServiceThread.java b/common/src/main/java/org/apache/rocketmq/common/ServiceThread.java
index 6023e9e8a..a84bcc861 100644
--- a/common/src/main/java/org/apache/rocketmq/common/ServiceThread.java
+++ b/common/src/main/java/org/apache/rocketmq/common/ServiceThread.java
@@ -19,11 +19,11 @@ package org.apache.rocketmq.common;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public abstract class ServiceThread implements Runnable {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
private static final long JOIN_TIME = 90 * 1000;
diff --git a/common/src/main/java/org/apache/rocketmq/common/ThreadFactoryImpl.java b/common/src/main/java/org/apache/rocketmq/common/ThreadFactoryImpl.java
index a87c1713a..a21fb35c1 100644
--- a/common/src/main/java/org/apache/rocketmq/common/ThreadFactoryImpl.java
+++ b/common/src/main/java/org/apache/rocketmq/common/ThreadFactoryImpl.java
@@ -20,12 +20,12 @@ package org.apache.rocketmq.common;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class ThreadFactoryImpl implements ThreadFactory {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
private final AtomicLong threadIndex = new AtomicLong(0);
private final String threadNamePrefix;
diff --git a/common/src/main/java/org/apache/rocketmq/common/UtilAll.java b/common/src/main/java/org/apache/rocketmq/common/UtilAll.java
index 8b7b26992..81f5df7ec 100644
--- a/common/src/main/java/org/apache/rocketmq/common/UtilAll.java
+++ b/common/src/main/java/org/apache/rocketmq/common/UtilAll.java
@@ -47,14 +47,14 @@ import org.apache.commons.lang3.JavaVersion;
import org.apache.commons.lang3.SystemUtils;
import org.apache.commons.validator.routines.InetAddressValidator;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import sun.misc.Unsafe;
import sun.nio.ch.DirectBuffer;
public class UtilAll {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
- private static final Logger STORE_LOG = LoggerFactory.getLogger(LoggerName.STORE_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ private static final InternalLogger STORE_LOG = InternalLoggerFactory.getLogger(LoggerName.STORE_LOGGER_NAME);
public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
diff --git a/common/src/main/java/org/apache/rocketmq/common/compression/Lz4Compressor.java b/common/src/main/java/org/apache/rocketmq/common/compression/Lz4Compressor.java
index 162487ad9..4e537d856 100644
--- a/common/src/main/java/org/apache/rocketmq/common/compression/Lz4Compressor.java
+++ b/common/src/main/java/org/apache/rocketmq/common/compression/Lz4Compressor.java
@@ -23,11 +23,11 @@ import java.io.IOException;
import net.jpountz.lz4.LZ4FrameInputStream;
import net.jpountz.lz4.LZ4FrameOutputStream;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class Lz4Compressor implements Compressor {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
@Override
public byte[] compress(byte[] src, int level) throws IOException {
diff --git a/common/src/main/java/org/apache/rocketmq/common/compression/ZlibCompressor.java b/common/src/main/java/org/apache/rocketmq/common/compression/ZlibCompressor.java
index a457830c3..64e798f03 100644
--- a/common/src/main/java/org/apache/rocketmq/common/compression/ZlibCompressor.java
+++ b/common/src/main/java/org/apache/rocketmq/common/compression/ZlibCompressor.java
@@ -23,11 +23,11 @@ import java.io.IOException;
import java.util.zip.DeflaterOutputStream;
import java.util.zip.InflaterInputStream;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class ZlibCompressor implements Compressor {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
@Override
public byte[] compress(byte[] src, int level) throws IOException {
diff --git a/common/src/main/java/org/apache/rocketmq/common/compression/ZstdCompressor.java b/common/src/main/java/org/apache/rocketmq/common/compression/ZstdCompressor.java
index 5e1351d20..3a220ce9f 100644
--- a/common/src/main/java/org/apache/rocketmq/common/compression/ZstdCompressor.java
+++ b/common/src/main/java/org/apache/rocketmq/common/compression/ZstdCompressor.java
@@ -23,11 +23,11 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class ZstdCompressor implements Compressor {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
@Override
public byte[] compress(byte[] src, int level) throws IOException {
diff --git a/common/src/main/java/org/apache/rocketmq/common/namesrv/DefaultTopAddressing.java b/common/src/main/java/org/apache/rocketmq/common/namesrv/DefaultTopAddressing.java
index f45b2aad6..be7e78c7e 100644
--- a/common/src/main/java/org/apache/rocketmq/common/namesrv/DefaultTopAddressing.java
+++ b/common/src/main/java/org/apache/rocketmq/common/namesrv/DefaultTopAddressing.java
@@ -28,12 +28,12 @@ import org.apache.rocketmq.common.UtilAll;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.help.FAQUrl;
import org.apache.rocketmq.common.utils.HttpTinyClient;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class DefaultTopAddressing implements TopAddressing {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
private String nsAddr;
private String wsAddr;
diff --git a/common/src/main/java/org/apache/rocketmq/common/queue/ConcurrentTreeMap.java b/common/src/main/java/org/apache/rocketmq/common/queue/ConcurrentTreeMap.java
index 774a42818..b5999a706 100644
--- a/common/src/main/java/org/apache/rocketmq/common/queue/ConcurrentTreeMap.java
+++ b/common/src/main/java/org/apache/rocketmq/common/queue/ConcurrentTreeMap.java
@@ -22,14 +22,14 @@ import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.locks.ReentrantLock;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
/**
* thread safe
*/
public class ConcurrentTreeMap<K, V> {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final ReentrantLock lock;
private TreeMap<K, V> tree;
private RoundQueue<K> roundQueue;
diff --git a/common/src/main/java/org/apache/rocketmq/common/statistics/StatisticsItemPrinter.java b/common/src/main/java/org/apache/rocketmq/common/statistics/StatisticsItemPrinter.java
index 5901acc73..26c1df8ca 100644
--- a/common/src/main/java/org/apache/rocketmq/common/statistics/StatisticsItemPrinter.java
+++ b/common/src/main/java/org/apache/rocketmq/common/statistics/StatisticsItemPrinter.java
@@ -16,19 +16,19 @@
*/
package org.apache.rocketmq.common.statistics;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
+import org.apache.rocketmq.logging.InternalLogger;
public class StatisticsItemPrinter {
- private Logger log;
+ private InternalLogger log;
private StatisticsItemFormatter formatter;
- public StatisticsItemPrinter(StatisticsItemFormatter formatter, Logger log) {
+ public StatisticsItemPrinter(StatisticsItemFormatter formatter, InternalLogger log) {
this.formatter = formatter;
this.log = log;
}
- public void log(Logger log) {
+ public void log(InternalLogger log) {
this.log = log;
}
diff --git a/common/src/main/java/org/apache/rocketmq/common/stats/MomentStatsItem.java b/common/src/main/java/org/apache/rocketmq/common/stats/MomentStatsItem.java
index 1470754a3..bc987b191 100644
--- a/common/src/main/java/org/apache/rocketmq/common/stats/MomentStatsItem.java
+++ b/common/src/main/java/org/apache/rocketmq/common/stats/MomentStatsItem.java
@@ -21,7 +21,7 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.rocketmq.common.UtilAll;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
+import org.apache.rocketmq.logging.InternalLogger;
public class MomentStatsItem {
@@ -30,10 +30,10 @@ public class MomentStatsItem {
private final String statsName;
private final String statsKey;
private final ScheduledExecutorService scheduledExecutorService;
- private final Logger log;
+ private final InternalLogger log;
public MomentStatsItem(String statsName, String statsKey,
- ScheduledExecutorService scheduledExecutorService, Logger log) {
+ ScheduledExecutorService scheduledExecutorService, InternalLogger log) {
this.statsName = statsName;
this.statsKey = statsKey;
this.scheduledExecutorService = scheduledExecutorService;
diff --git a/common/src/main/java/org/apache/rocketmq/common/stats/MomentStatsItemSet.java b/common/src/main/java/org/apache/rocketmq/common/stats/MomentStatsItemSet.java
index 96e1d5060..522130e36 100644
--- a/common/src/main/java/org/apache/rocketmq/common/stats/MomentStatsItemSet.java
+++ b/common/src/main/java/org/apache/rocketmq/common/stats/MomentStatsItemSet.java
@@ -24,16 +24,16 @@ import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.apache.rocketmq.common.UtilAll;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
+import org.apache.rocketmq.logging.InternalLogger;
public class MomentStatsItemSet {
private final ConcurrentMap<String/* key */, MomentStatsItem> statsItemTable =
new ConcurrentHashMap<>(128);
private final String statsName;
private final ScheduledExecutorService scheduledExecutorService;
- private final Logger log;
+ private final InternalLogger log;
- public MomentStatsItemSet(String statsName, ScheduledExecutorService scheduledExecutorService, Logger log) {
+ public MomentStatsItemSet(String statsName, ScheduledExecutorService scheduledExecutorService, InternalLogger log) {
this.statsName = statsName;
this.scheduledExecutorService = scheduledExecutorService;
this.log = log;
diff --git a/common/src/main/java/org/apache/rocketmq/common/stats/RTStatsItem.java b/common/src/main/java/org/apache/rocketmq/common/stats/RTStatsItem.java
index 5e86842b6..102148cdc 100644
--- a/common/src/main/java/org/apache/rocketmq/common/stats/RTStatsItem.java
+++ b/common/src/main/java/org/apache/rocketmq/common/stats/RTStatsItem.java
@@ -17,17 +17,17 @@
package org.apache.rocketmq.common.stats;
+import org.apache.rocketmq.logging.InternalLogger;
+
import java.util.concurrent.ScheduledExecutorService;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
/**
* A StatItem for response time, the only difference between from StatsItem is it has a different log output.
*/
public class RTStatsItem extends StatsItem {
- public RTStatsItem(String statsName, String statsKey, ScheduledExecutorService scheduledExecutorService,
- Logger logger) {
- super(statsName, statsKey, scheduledExecutorService, logger);
+ public RTStatsItem(String statsName, String statsKey, ScheduledExecutorService scheduledExecutorService, InternalLogger log) {
+ super(statsName, statsKey, scheduledExecutorService, log);
}
/**
diff --git a/common/src/main/java/org/apache/rocketmq/common/stats/StatsItem.java b/common/src/main/java/org/apache/rocketmq/common/stats/StatsItem.java
index 765c66df1..35e4da5b5 100644
--- a/common/src/main/java/org/apache/rocketmq/common/stats/StatsItem.java
+++ b/common/src/main/java/org/apache/rocketmq/common/stats/StatsItem.java
@@ -23,9 +23,10 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.LongAdder;
import org.apache.rocketmq.common.UtilAll;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
+import org.apache.rocketmq.logging.InternalLogger;
public class StatsItem {
+
private final LongAdder value = new LongAdder();
private final LongAdder times = new LongAdder();
@@ -39,14 +40,14 @@ public class StatsItem {
private final String statsName;
private final String statsKey;
private final ScheduledExecutorService scheduledExecutorService;
+ private final InternalLogger log;
- private final Logger logger;
-
- public StatsItem(String statsName, String statsKey, ScheduledExecutorService scheduledExecutorService, Logger logger) {
+ public StatsItem(String statsName, String statsKey, ScheduledExecutorService scheduledExecutorService,
+ InternalLogger log) {
this.statsName = statsName;
this.statsKey = statsKey;
this.scheduledExecutorService = scheduledExecutorService;
- this.logger = logger;
+ this.log = log;
}
private static StatsSnapshot computeStatsData(final LinkedList<CallSnapshot> csList) {
@@ -193,18 +194,18 @@ public class StatsItem {
public void printAtMinutes() {
StatsSnapshot ss = computeStatsData(this.csListMinute);
- logger.info(String.format("[%s] [%s] Stats In One Minute, ", this.statsName, this.statsKey) + statPrintDetail(ss));
+ log.info(String.format("[%s] [%s] Stats In One Minute, ", this.statsName, this.statsKey) + statPrintDetail(ss));
}
public void printAtHour() {
StatsSnapshot ss = computeStatsData(this.csListHour);
- logger.info(String.format("[%s] [%s] Stats In One Hour, ", this.statsName, this.statsKey) + statPrintDetail(ss));
+ log.info(String.format("[%s] [%s] Stats In One Hour, ", this.statsName, this.statsKey) + statPrintDetail(ss));
}
public void printAtDay() {
StatsSnapshot ss = computeStatsData(this.csListDay);
- logger.info(String.format("[%s] [%s] Stats In One Day, ", this.statsName, this.statsKey) + statPrintDetail(ss));
+ log.info(String.format("[%s] [%s] Stats In One Day, ", this.statsName, this.statsKey) + statPrintDetail(ss));
}
protected String statPrintDetail(StatsSnapshot ss) {
diff --git a/common/src/main/java/org/apache/rocketmq/common/stats/StatsItemSet.java b/common/src/main/java/org/apache/rocketmq/common/stats/StatsItemSet.java
index b9bd8c910..eb853847a 100644
--- a/common/src/main/java/org/apache/rocketmq/common/stats/StatsItemSet.java
+++ b/common/src/main/java/org/apache/rocketmq/common/stats/StatsItemSet.java
@@ -24,7 +24,7 @@ import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.apache.rocketmq.common.UtilAll;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
+import org.apache.rocketmq.logging.InternalLogger;
public class StatsItemSet {
private final ConcurrentMap<String/* key */, StatsItem> statsItemTable =
@@ -32,13 +32,12 @@ public class StatsItemSet {
private final String statsName;
private final ScheduledExecutorService scheduledExecutorService;
+ private final InternalLogger log;
- private final Logger logger;
-
- public StatsItemSet(String statsName, ScheduledExecutorService scheduledExecutorService, Logger logger) {
- this.logger = logger;
+ public StatsItemSet(String statsName, ScheduledExecutorService scheduledExecutorService, InternalLogger log) {
this.statsName = statsName;
this.scheduledExecutorService = scheduledExecutorService;
+ this.log = log;
this.init();
}
@@ -214,9 +213,9 @@ public class StatsItemSet {
StatsItem statsItem = this.statsItemTable.get(statsKey);
if (null == statsItem) {
if (rtItem) {
- statsItem = new RTStatsItem(this.statsName, statsKey, this.scheduledExecutorService, logger);
+ statsItem = new RTStatsItem(this.statsName, statsKey, this.scheduledExecutorService, this.log);
} else {
- statsItem = new StatsItem(this.statsName, statsKey, this.scheduledExecutorService, logger);
+ statsItem = new StatsItem(this.statsName, statsKey, this.scheduledExecutorService, this.log);
}
StatsItem prev = this.statsItemTable.putIfAbsent(statsKey, statsItem);
diff --git a/common/src/main/java/org/apache/rocketmq/common/thread/ThreadPoolMonitor.java b/common/src/main/java/org/apache/rocketmq/common/thread/ThreadPoolMonitor.java
index 7b25c7e3b..e5bb6a394 100644
--- a/common/src/main/java/org/apache/rocketmq/common/thread/ThreadPoolMonitor.java
+++ b/common/src/main/java/org/apache/rocketmq/common/thread/ThreadPoolMonitor.java
@@ -28,12 +28,12 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.apache.rocketmq.common.UtilAll;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class ThreadPoolMonitor {
- private static Logger jstackLogger = LoggerFactory.getLogger(ThreadPoolMonitor.class);
- private static Logger waterMarkLogger = LoggerFactory.getLogger(ThreadPoolMonitor.class);
+ private static InternalLogger jstackLogger = InternalLoggerFactory.getLogger(ThreadPoolMonitor.class);
+ private static InternalLogger waterMarkLogger = InternalLoggerFactory.getLogger(ThreadPoolMonitor.class);
private static final List<ThreadPoolWrapper> MONITOR_EXECUTOR = new CopyOnWriteArrayList<>();
private static final ScheduledExecutorService MONITOR_SCHEDULED = Executors.newSingleThreadScheduledExecutor(
@@ -45,7 +45,7 @@ public class ThreadPoolMonitor {
private static volatile long jstackPeriodTime = 60000;
private static volatile long jstackTime = System.currentTimeMillis();
- public static void config(Logger jstackLoggerConfig, Logger waterMarkLoggerConfig,
+ public static void config(InternalLogger jstackLoggerConfig, InternalLogger waterMarkLoggerConfig,
boolean enablePrintJstack, long jstackPeriodTimeConfig, long threadPoolStatusPeriodTimeConfig) {
jstackLogger = jstackLoggerConfig;
waterMarkLogger = waterMarkLoggerConfig;
diff --git a/common/src/main/java/org/apache/rocketmq/common/utils/NetworkUtil.java b/common/src/main/java/org/apache/rocketmq/common/utils/NetworkUtil.java
index 36859b445..5d05bc12f 100644
--- a/common/src/main/java/org/apache/rocketmq/common/utils/NetworkUtil.java
+++ b/common/src/main/java/org/apache/rocketmq/common/utils/NetworkUtil.java
@@ -29,13 +29,13 @@ import java.nio.channels.spi.SelectorProvider;
import java.util.ArrayList;
import java.util.Enumeration;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public class NetworkUtil {
public static final String OS_NAME = System.getProperty("os.name");
- private static final Logger log = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
private static boolean isLinuxPlatform = false;
private static boolean isWindowsPlatform = false;
diff --git a/common/src/main/java/org/apache/rocketmq/common/utils/ServiceProvider.java b/common/src/main/java/org/apache/rocketmq/common/utils/ServiceProvider.java
index c465a44b3..00c8bffba 100644
--- a/common/src/main/java/org/apache/rocketmq/common/utils/ServiceProvider.java
+++ b/common/src/main/java/org/apache/rocketmq/common/utils/ServiceProvider.java
@@ -20,8 +20,8 @@ package org.apache.rocketmq.common.utils;
import java.nio.charset.StandardCharsets;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import java.io.BufferedReader;
import java.io.InputStream;
@@ -30,7 +30,9 @@ import java.util.ArrayList;
import java.util.List;
public class ServiceProvider {
- private static final Logger LOG = LoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+
+ private static final InternalLogger LOG = InternalLoggerFactory.getLogger(LoggerName.COMMON_LOGGER_NAME);
+
/**
* A reference to the classloader that loaded this class. It's more efficient to compute it once and cache it here.
*/
diff --git a/common/src/main/java/org/apache/rocketmq/common/utils/ThreadUtils.java b/common/src/main/java/org/apache/rocketmq/common/utils/ThreadUtils.java
index 7fb779636..61ca4a8f2 100644
--- a/common/src/main/java/org/apache/rocketmq/common/utils/ThreadUtils.java
+++ b/common/src/main/java/org/apache/rocketmq/common/utils/ThreadUtils.java
@@ -26,11 +26,11 @@ import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
public final class ThreadUtils {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.TOOLS_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.TOOLS_LOGGER_NAME);
public static ExecutorService newThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime,
TimeUnit unit, BlockingQueue<Runnable> workQueue, String processName, boolean isDaemon) {
diff --git a/container/BUILD.bazel b/container/BUILD.bazel
index 71611bda9..15fc0ae77 100644
--- a/container/BUILD.bazel
+++ b/container/BUILD.bazel
@@ -23,6 +23,7 @@ java_library(
deps = [
"//broker",
"//common",
+ "//logging",
"//remoting",
"//client",
"//srvutil",
@@ -41,7 +42,6 @@ java_library(
"@maven//:ch_qos_logback_logback_core",
"@maven//:ch_qos_logback_logback_classic",
"@maven//:commons_cli_commons_cli",
- "@maven//:io_github_aliyun_mq_rocketmq_slf4j_api",
],
)
@@ -53,6 +53,7 @@ java_library(
":container",
"//broker",
"//common",
+ "//logging",
"//remoting",
"//client",
"//srvutil",
diff --git a/container/pom.xml b/container/pom.xml
index dc7ab5dfb..c0ea9d33d 100644
--- a/container/pom.xml
+++ b/container/pom.xml
@@ -34,13 +34,6 @@
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-broker</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <scope>test</scope>
</dependency>
</dependencies>
</project>
diff --git a/container/src/main/java/org/apache/rocketmq/container/BrokerContainer.java b/container/src/main/java/org/apache/rocketmq/container/BrokerContainer.java
index e5c920962..20f549baf 100644
--- a/container/src/main/java/org/apache/rocketmq/container/BrokerContainer.java
+++ b/container/src/main/java/org/apache/rocketmq/container/BrokerContainer.java
@@ -39,8 +39,8 @@ import org.apache.rocketmq.common.ThreadFactoryImpl;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.utils.ThreadUtils;
import org.apache.rocketmq.container.logback.BrokerLogbackConfigurator;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.Configuration;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.RemotingServer;
@@ -51,7 +51,7 @@ import org.apache.rocketmq.store.config.BrokerRole;
import org.apache.rocketmq.store.config.MessageStoreConfig;
public class BrokerContainer implements IBrokerContainer {
- private static final Logger LOG = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOG = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final ScheduledExecutorService scheduledExecutorService = new ScheduledThreadPoolExecutor(1,
new BasicThreadFactory.Builder()
diff --git a/container/src/main/java/org/apache/rocketmq/container/BrokerContainerProcessor.java b/container/src/main/java/org/apache/rocketmq/container/BrokerContainerProcessor.java
index ea28bd783..671ea5ff9 100644
--- a/container/src/main/java/org/apache/rocketmq/container/BrokerContainerProcessor.java
+++ b/container/src/main/java/org/apache/rocketmq/container/BrokerContainerProcessor.java
@@ -27,8 +27,8 @@ import org.apache.rocketmq.common.BrokerConfig;
import org.apache.rocketmq.common.BrokerIdentity;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.netty.NettyRequestProcessor;
@@ -41,7 +41,7 @@ import org.apache.rocketmq.remoting.protocol.header.RemoveBrokerRequestHeader;
import org.apache.rocketmq.store.config.MessageStoreConfig;
public class BrokerContainerProcessor implements NettyRequestProcessor {
- private static final Logger LOGGER = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOGGER = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private final BrokerContainer brokerContainer;
private List<BrokerBootHook> brokerBootHookList;
diff --git a/container/src/main/java/org/apache/rocketmq/container/BrokerContainerStartup.java b/container/src/main/java/org/apache/rocketmq/container/BrokerContainerStartup.java
index f60c99b0b..d58f8ae57 100644
--- a/container/src/main/java/org/apache/rocketmq/container/BrokerContainerStartup.java
+++ b/container/src/main/java/org/apache/rocketmq/container/BrokerContainerStartup.java
@@ -16,6 +16,8 @@
*/
package org.apache.rocketmq.container;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.joran.JoranConfigurator;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
@@ -34,14 +36,16 @@ import org.apache.rocketmq.common.MQVersion;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.utils.NetworkUtil;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.netty.NettyClientConfig;
import org.apache.rocketmq.remoting.netty.NettyServerConfig;
import org.apache.rocketmq.remoting.netty.NettySystemConfig;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
import org.apache.rocketmq.srvutil.ServerUtil;
import org.apache.rocketmq.store.config.MessageStoreConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class BrokerContainerStartup {
private static final String BROKER_CONTAINER_CONFIG_OPTION = "c";
@@ -51,9 +55,10 @@ public class BrokerContainerStartup {
public static Properties properties = null;
public static CommandLine commandLine = null;
public static String configFile = null;
- public static Logger log;
+ public static InternalLogger log;
public static final SystemConfigFileHelper CONFIG_FILE_HELPER = new SystemConfigFileHelper();
public static String rocketmqHome = null;
+ public static final JoranConfigurator CONFIGURATOR = new JoranConfigurator();
public static void main(String[] args) {
final BrokerContainer brokerContainer = startBrokerContainer(createBrokerContainer(args));
@@ -168,7 +173,7 @@ public class BrokerContainerStartup {
brokerConfig.setBrokerConfigPath(filePath);
- log = LoggerFactory.getLogger(brokerConfig.getLoggerIdentifier() + LoggerName.BROKER_LOGGER_NAME);
+ log = InternalLoggerFactory.getLogger(brokerConfig.getLoggerIdentifier() + LoggerName.BROKER_LOGGER_NAME);
MixAll.printObjectProperties(log, brokerConfig);
MixAll.printObjectProperties(log, messageStoreConfig);
@@ -306,21 +311,29 @@ public class BrokerContainerStartup {
}
}
+ LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
+ CONFIGURATOR.setContext(lc);
+ lc.reset();
+ //https://logback.qos.ch/manual/configuration.html
+ lc.setPackagingDataEnabled(false);
+
+ CONFIGURATOR.doConfigure(rocketmqHome + "/conf/logback_broker.xml");
+
if (commandLine.hasOption(PRINT_PROPERTIES_OPTION)) {
- Logger console = LoggerFactory.getLogger(LoggerName.BROKER_CONSOLE_NAME);
+ InternalLogger console = InternalLoggerFactory.getLogger(LoggerName.BROKER_CONSOLE_NAME);
MixAll.printObjectProperties(console, containerConfig);
MixAll.printObjectProperties(console, nettyServerConfig);
MixAll.printObjectProperties(console, nettyClientConfig);
System.exit(0);
} else if (commandLine.hasOption(PRINT_IMPORTANT_PROPERTIES_OPTION)) {
- Logger console = LoggerFactory.getLogger(LoggerName.BROKER_CONSOLE_NAME);
+ InternalLogger console = InternalLoggerFactory.getLogger(LoggerName.BROKER_CONSOLE_NAME);
MixAll.printObjectProperties(console, containerConfig, true);
MixAll.printObjectProperties(console, nettyServerConfig, true);
MixAll.printObjectProperties(console, nettyClientConfig, true);
System.exit(0);
}
- log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ log = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
MixAll.printObjectProperties(log, containerConfig);
MixAll.printObjectProperties(log, nettyServerConfig);
MixAll.printObjectProperties(log, nettyClientConfig);
diff --git a/container/src/main/java/org/apache/rocketmq/container/logback/BrokerLogbackConfigurator.java b/container/src/main/java/org/apache/rocketmq/container/logback/BrokerLogbackConfigurator.java
index ba7467721..45cbe9367 100644
--- a/container/src/main/java/org/apache/rocketmq/container/logback/BrokerLogbackConfigurator.java
+++ b/container/src/main/java/org/apache/rocketmq/container/logback/BrokerLogbackConfigurator.java
@@ -17,16 +17,33 @@
package org.apache.rocketmq.container.logback;
+import ch.qos.logback.classic.AsyncAppender;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.Appender;
+import ch.qos.logback.core.encoder.Encoder;
+import ch.qos.logback.core.rolling.FixedWindowRollingPolicy;
+import ch.qos.logback.core.rolling.RollingFileAppender;
+import ch.qos.logback.core.rolling.RollingPolicy;
+import ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP;
+import ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy;
+import ch.qos.logback.core.rolling.TimeBasedFileNamingAndTriggeringPolicy;
+import ch.qos.logback.core.rolling.TimeBasedRollingPolicy;
+
+import java.lang.reflect.Field;
import java.util.HashSet;
import java.util.Set;
+import ch.qos.logback.core.util.FileSize;
import org.apache.rocketmq.common.BrokerIdentity;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
+import org.slf4j.LoggerFactory;
public class BrokerLogbackConfigurator {
- private static final Logger LOG = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
+ private static final InternalLogger LOG = InternalLoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
private static final Set<String> CONFIGURED_BROKER_LIST = new HashSet<>();
@@ -37,5 +54,134 @@ public class BrokerLogbackConfigurator {
public static final String SUFFIX_INNER_APPENDER = "_inner";
public static void doConfigure(BrokerIdentity brokerIdentity) {
+ if (!CONFIGURED_BROKER_LIST.contains(brokerIdentity.getCanonicalName())) {
+ try {
+ LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
+ for (ch.qos.logback.classic.Logger tempLogger : lc.getLoggerList()) {
+ String loggerName = tempLogger.getName();
+ if (loggerName.startsWith(ROCKETMQ_PREFIX)
+ && !loggerName.endsWith(SUFFIX_CONSOLE)
+ && !loggerName.equals(LoggerName.ACCOUNT_LOGGER_NAME)
+ && !loggerName.equals(LoggerName.COMMERCIAL_LOGGER_NAME)
+ && !loggerName.equals(LoggerName.CONSUMER_STATS_LOGGER_NAME)) {
+ ch.qos.logback.classic.Logger logger = lc.getLogger(brokerIdentity.getLoggerIdentifier() + loggerName);
+ logger.setAdditive(tempLogger.isAdditive());
+ logger.setLevel(tempLogger.getLevel());
+ String appenderName = loggerName + SUFFIX_APPENDER;
+ Appender<ILoggingEvent> tempAppender = tempLogger.getAppender(appenderName);
+ if (tempAppender instanceof AsyncAppender) {
+ AsyncAppender tempAsyncAppender = (AsyncAppender) tempAppender;
+ AsyncAppender asyncAppender = new AsyncAppender();
+ asyncAppender.setName(brokerIdentity.getLoggerIdentifier() + appenderName);
+ asyncAppender.setContext(tempAsyncAppender.getContext());
+
+ String innerAppenderName = appenderName + SUFFIX_INNER_APPENDER;
+ Appender<ILoggingEvent> tempInnerAppender = tempAsyncAppender.getAppender(innerAppenderName);
+ if (!(tempInnerAppender instanceof RollingFileAppender)) {
+ continue;
+ }
+ asyncAppender.addAppender(configureRollingFileAppender((RollingFileAppender<ILoggingEvent>) tempInnerAppender,
+ brokerIdentity, innerAppenderName));
+ asyncAppender.start();
+ logger.addAppender(asyncAppender);
+ } else if (tempAppender instanceof RollingFileAppender) {
+ logger.addAppender(configureRollingFileAppender((RollingFileAppender<ILoggingEvent>) tempAppender,
+ brokerIdentity, appenderName));
+ }
+ }
+ }
+ } catch (Exception e) {
+ LOG.error("Configure logback for broker {} failed, will use default broker log config instead. {}", brokerIdentity.getCanonicalName(), e);
+ return;
+ }
+
+ CONFIGURED_BROKER_LIST.add(brokerIdentity.getCanonicalName());
+ }
+ }
+
+ private static RollingFileAppender<ILoggingEvent> configureRollingFileAppender(
+ RollingFileAppender<ILoggingEvent> tempRollingFileAppender, BrokerIdentity brokerIdentity, String appenderName)
+ throws NoSuchFieldException, IllegalAccessException {
+ RollingFileAppender<ILoggingEvent> rollingFileAppender = new RollingFileAppender<>();
+
+ // configure appender name
+ rollingFileAppender.setName(brokerIdentity.getLoggerIdentifier() + appenderName);
+
+ // configure file name
+ rollingFileAppender.setFile(tempRollingFileAppender.getFile().replaceAll(ROCKETMQ_LOGS, brokerIdentity.getCanonicalName() + "_" + ROCKETMQ_LOGS));
+
+ // configure append
+ rollingFileAppender.setAppend(true);
+
+ // configure prudent
+ rollingFileAppender.setPrudent(tempRollingFileAppender.isPrudent());
+
+ // configure rollingPolicy
+ RollingPolicy originalRollingPolicy = tempRollingFileAppender.getRollingPolicy();
+ if (originalRollingPolicy instanceof TimeBasedRollingPolicy) {
+ TimeBasedRollingPolicy<ILoggingEvent> tempRollingPolicy = (TimeBasedRollingPolicy<ILoggingEvent>) originalRollingPolicy;
+ TimeBasedRollingPolicy<ILoggingEvent> rollingPolicy = new TimeBasedRollingPolicy<>();
+ rollingPolicy.setContext(tempRollingPolicy.getContext());
+ rollingPolicy.setFileNamePattern(tempRollingPolicy.getFileNamePattern());
+ SizeAndTimeBasedFNATP<ILoggingEvent> sizeAndTimeBasedFNATP = new SizeAndTimeBasedFNATP<>();
+ sizeAndTimeBasedFNATP.setContext(tempRollingPolicy.getContext());
+ TimeBasedFileNamingAndTriggeringPolicy<ILoggingEvent> timeBasedFileNamingAndTriggeringPolicy =
+ tempRollingPolicy.getTimeBasedFileNamingAndTriggeringPolicy();
+ if (timeBasedFileNamingAndTriggeringPolicy instanceof SizeAndTimeBasedFNATP) {
+ SizeAndTimeBasedFNATP<ILoggingEvent> originalSizeAndTimeBasedFNATP =
+ (SizeAndTimeBasedFNATP<ILoggingEvent>) timeBasedFileNamingAndTriggeringPolicy;
+ Field field = originalSizeAndTimeBasedFNATP.getClass().getDeclaredField("maxFileSize");
+ field.setAccessible(true);
+ sizeAndTimeBasedFNATP.setMaxFileSize((FileSize) field.get(originalSizeAndTimeBasedFNATP));
+ sizeAndTimeBasedFNATP.setTimeBasedRollingPolicy(rollingPolicy);
+ }
+ rollingPolicy.setTimeBasedFileNamingAndTriggeringPolicy(sizeAndTimeBasedFNATP);
+ rollingPolicy.setMaxHistory(tempRollingPolicy.getMaxHistory());
+ rollingPolicy.setParent(rollingFileAppender);
+ rollingPolicy.start();
+ rollingFileAppender.setRollingPolicy(rollingPolicy);
+ } else if (originalRollingPolicy instanceof FixedWindowRollingPolicy) {
+ FixedWindowRollingPolicy tempRollingPolicy = (FixedWindowRollingPolicy) originalRollingPolicy;
+ FixedWindowRollingPolicy rollingPolicy = new FixedWindowRollingPolicy();
+ rollingPolicy.setContext(tempRollingPolicy.getContext());
+ rollingPolicy.setFileNamePattern(tempRollingPolicy.getFileNamePattern().replaceAll(ROCKETMQ_LOGS, brokerIdentity.getCanonicalName() + "_" + ROCKETMQ_LOGS));
+ rollingPolicy.setMaxIndex(tempRollingPolicy.getMaxIndex());
+ rollingPolicy.setMinIndex(tempRollingPolicy.getMinIndex());
+ rollingPolicy.setParent(rollingFileAppender);
+ rollingPolicy.start();
+ rollingFileAppender.setRollingPolicy(rollingPolicy);
+ }
+
+ // configure triggerPolicy
+ if (tempRollingFileAppender.getTriggeringPolicy() instanceof SizeBasedTriggeringPolicy) {
+ SizeBasedTriggeringPolicy<ILoggingEvent> tempTriggerPolicy = (SizeBasedTriggeringPolicy<ILoggingEvent>) tempRollingFileAppender.getTriggeringPolicy();
+ SizeBasedTriggeringPolicy<ILoggingEvent> triggerPolicy = new SizeBasedTriggeringPolicy<>();
+ triggerPolicy.setContext(tempTriggerPolicy.getContext());
+ Field field = triggerPolicy.getClass().getDeclaredField("maxFileSize");
+ field.setAccessible(true);
+ triggerPolicy.setMaxFileSize((FileSize) field.get(triggerPolicy));
+ triggerPolicy.start();
+ rollingFileAppender.setTriggeringPolicy(triggerPolicy);
+ }
+
+ // configure encoder
+ Encoder<ILoggingEvent> tempEncoder = tempRollingFileAppender.getEncoder();
+ if (tempEncoder instanceof PatternLayoutEncoder) {
+ PatternLayoutEncoder tempPatternLayoutEncoder = (PatternLayoutEncoder) tempEncoder;
+ PatternLayoutEncoder patternLayoutEncoder = new PatternLayoutEncoder();
+ patternLayoutEncoder.setContext(tempPatternLayoutEncoder.getContext());
+ patternLayoutEncoder.setPattern(tempPatternLayoutEncoder.getPattern());
+ patternLayoutEncoder.setCharset(tempPatternLayoutEncoder.getCharset());
+ patternLayoutEncoder.start();
+
+ rollingFileAppender.setEncoder(patternLayoutEncoder);
+ }
+
+ // configure context
+ rollingFileAppender.setContext(tempRollingFileAppender.getContext());
+
+ rollingFileAppender.start();
+
+ return rollingFileAppender;
}
}
diff --git a/container/src/test/resources/rmq.logback-test.xml b/container/src/test/resources/rmq.logback-test.xml
deleted file mode 100644
index c3ec0d1e8..000000000
--- a/container/src/test/resources/rmq.logback-test.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-<configuration>
-
- <appender name="CONSOLE" class="org.apache.rocketmq.shade.ch.qos.logback.core.ConsoleAppender">
- <layout class="org.apache.rocketmq.shade.ch.qos.logback.classic.PatternLayout">
- <Pattern>
- %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
- </Pattern>
- </layout>
- </appender>
-
- <logger name="org.apache.rocketmq" level="error" additivity="false">
- <appender-ref ref="CONSOLE"/>
- </logger>
-
- <root level="error">
- <appender-ref ref="CONSOLE"/>
- </root>
-
-</configuration>
\ No newline at end of file
diff --git a/controller/BUILD.bazel b/controller/BUILD.bazel
index f14480c5e..ef9b9c5eb 100644
--- a/controller/BUILD.bazel
+++ b/controller/BUILD.bazel
@@ -22,6 +22,7 @@ java_library(
visibility = ["//visibility:public"],
deps = [
"//common",
+ "//logging",
"//remoting",
"//client",
"//srvutil",
@@ -39,7 +40,6 @@ java_library(
"@maven//:ch_qos_logback_logback_core",
"@maven//:ch_qos_logback_logback_classic",
"@maven//:commons_cli_commons_cli",
- "@maven//:io_github_aliyun_mq_rocketmq_slf4j_api",
],
)
@@ -50,6 +50,7 @@ java_library(
deps = [
":controller",
"//common",
+ "//logging",
"//remoting",
"//client",
"//srvutil",
diff --git a/controller/pom.xml b/controller/pom.xml
index db5fd1e55..1f7698add 100644
--- a/controller/pom.xml
+++ b/controller/pom.xml
@@ -44,18 +44,19 @@
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-client</artifactId>
- <version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-srvutil</artifactId>
- <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
- <scope>test</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git a/controller/src/main/java/org/apache/rocketmq/controller/BrokerHousekeepingService.java b/controller/src/main/java/org/apache/rocketmq/controller/BrokerHousekeepingService.java
index a18b12c86..50c96cfd3 100644
--- a/controller/src/main/java/org/apache/rocketmq/controller/BrokerHousekeepingService.java
+++ b/controller/src/main/java/org/apache/rocketmq/controller/BrokerHousekeepingService.java
@@ -18,12 +18,12 @@ package org.apache.rocketmq.controller;
import io.netty.channel.Channel;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.ChannelEventListener;
public class BrokerHousekeepingService implements ChannelEventListener {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.NAMESRV_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.NAMESRV_LOGGER_NAME);
private final ControllerManager controllerManager;
public BrokerHousekeepingService(ControllerManager controllerManager) {
diff --git a/controller/src/main/java/org/apache/rocketmq/controller/ControllerManager.java b/controller/src/main/java/org/apache/rocketmq/controller/ControllerManager.java
index cd8d0f2ba..1add67a38 100644
--- a/controller/src/main/java/org/apache/rocketmq/controller/ControllerManager.java
+++ b/controller/src/main/java/org/apache/rocketmq/controller/ControllerManager.java
@@ -34,8 +34,8 @@ import org.apache.rocketmq.controller.elect.impl.DefaultElectPolicy;
import org.apache.rocketmq.controller.impl.DLedgerController;
import org.apache.rocketmq.controller.impl.DefaultBrokerHeartbeatManager;
import org.apache.rocketmq.controller.processor.ControllerRequestProcessor;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.Configuration;
import org.apache.rocketmq.remoting.RemotingClient;
import org.apache.rocketmq.remoting.RemotingServer;
@@ -50,7 +50,7 @@ import org.apache.rocketmq.remoting.protocol.header.namesrv.controller.ElectMast
import org.apache.rocketmq.remoting.protocol.header.namesrv.controller.ElectMasterResponseHeader;
public class ControllerManager {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.CONTROLLER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.CONTROLLER_LOGGER_NAME);
private final ControllerConfig controllerConfig;
private final NettyServerConfig nettyServerConfig;
diff --git a/controller/src/main/java/org/apache/rocketmq/controller/ControllerStartup.java b/controller/src/main/java/org/apache/rocketmq/controller/ControllerStartup.java
index 7d24c0b82..e27ee68ab 100644
--- a/controller/src/main/java/org/apache/rocketmq/controller/ControllerStartup.java
+++ b/controller/src/main/java/org/apache/rocketmq/controller/ControllerStartup.java
@@ -16,6 +16,9 @@
*/
package org.apache.rocketmq.controller;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.joran.JoranConfigurator;
+import ch.qos.logback.core.joran.spi.JoranException;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
@@ -30,17 +33,18 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.common.ControllerConfig;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.constant.LoggerName;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.netty.NettyClientConfig;
import org.apache.rocketmq.remoting.netty.NettyServerConfig;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
import org.apache.rocketmq.srvutil.ServerUtil;
import org.apache.rocketmq.srvutil.ShutdownHookThread;
+import org.slf4j.LoggerFactory;
public class ControllerStartup {
- private static Logger log;
+ private static InternalLogger log;
private static Properties properties = null;
private static CommandLine commandLine = null;
@@ -65,7 +69,7 @@ public class ControllerStartup {
return null;
}
- public static ControllerManager createControllerManager(String[] args) throws IOException {
+ public static ControllerManager createControllerManager(String[] args) throws IOException, JoranException {
Options options = ServerUtil.buildCommandlineOptions(new Options());
commandLine = ServerUtil.parseCmdLine("mqcontroller", args, buildCommandlineOptions(options), new DefaultParser());
if (null == commandLine) {
@@ -102,12 +106,18 @@ public class ControllerStartup {
MixAll.properties2Object(ServerUtil.commandLine2Properties(commandLine), controllerConfig);
+ LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
+ JoranConfigurator configurator = new JoranConfigurator();
+ configurator.setContext(lc);
+ lc.reset();
+
if (StringUtils.isEmpty(controllerConfig.getRocketmqHome())) {
System.out.printf("Please set the %s or %s variable in your environment!%n", MixAll.ROCKETMQ_HOME_ENV, MixAll.ROCKETMQ_HOME_PROPERTY);
System.exit(-1);
}
+ configurator.doConfigure(controllerConfig.getRocketmqHome() + "/conf/logback_controller.xml");
- log = LoggerFactory.getLogger(LoggerName.NAMESRV_LOGGER_NAME);
+ log = InternalLoggerFactory.getLogger(LoggerName.NAMESRV_LOGGER_NAME);
MixAll.printObjectProperties(log, controllerConfig);
MixAll.printObjectProperties(log, nettyServerConfig);
diff --git a/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerController.java b/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerController.java
index a45e18e18..ba8a156fb 100644
--- a/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerController.java
+++ b/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerController.java
@@ -47,8 +47,8 @@ import org.apache.rocketmq.controller.impl.event.ControllerResult;
import org.apache.rocketmq.controller.impl.event.EventMessage;
import org.apache.rocketmq.controller.impl.event.EventSerializer;
import org.apache.rocketmq.controller.impl.manager.ReplicasInfoManager;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.ChannelEventListener;
import org.apache.rocketmq.remoting.CommandCustomHeader;
import org.apache.rocketmq.remoting.RemotingServer;
@@ -69,7 +69,7 @@ import org.apache.rocketmq.remoting.protocol.header.namesrv.controller.RegisterB
*/
public class DLedgerController implements Controller {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.CONTROLLER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.CONTROLLER_LOGGER_NAME);
private final DLedgerServer dLedgerServer;
private final ControllerConfig controllerConfig;
private final DLedgerConfig dLedgerConfig;
diff --git a/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerControllerStateMachine.java b/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerControllerStateMachine.java
index de4503d1b..ef3124166 100644
--- a/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerControllerStateMachine.java
+++ b/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerControllerStateMachine.java
@@ -26,14 +26,14 @@ import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.controller.impl.event.EventMessage;
import org.apache.rocketmq.controller.impl.event.EventSerializer;
import org.apache.rocketmq.controller.impl.manager.ReplicasInfoManager;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
/**
* The state machine implementation of the dledger controller
*/
public class DLedgerControllerStateMachine implements StateMachine {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.CONTROLLER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.CONTROLLER_LOGGER_NAME);
private final ReplicasInfoManager replicasInfoManager;
private final EventSerializer eventSerializer;
private final String dLedgerId;
diff --git a/controller/src/main/java/org/apache/rocketmq/controller/impl/DefaultBrokerHeartbeatManager.java b/controller/src/main/java/org/apache/rocketmq/controller/impl/DefaultBrokerHeartbeatManager.java
index 6e32a1259..0e04ae48d 100644
--- a/controller/src/main/java/org/apache/rocketmq/controller/impl/DefaultBrokerHeartbeatManager.java
+++ b/controller/src/main/java/org/apache/rocketmq/controller/impl/DefaultBrokerHeartbeatManager.java
@@ -33,12 +33,12 @@ import org.apache.rocketmq.common.ThreadFactoryImpl;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.controller.BrokerHeartbeatManager;
import org.apache.rocketmq.controller.BrokerLiveInfo;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
public class DefaultBrokerHeartbeatManager implements BrokerHeartbeatManager {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.CONTROLLER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.CONTROLLER_LOGGER_NAME);
private static final long DEFAULT_BROKER_CHANNEL_EXPIRED_TIME = 1000 * 10;
private final ScheduledExecutorService scheduledService = Executors.newSingleThreadScheduledExecutor(new ThreadFactoryImpl("DefaultBrokerHeartbeatManager_scheduledService_"));
private final ExecutorService executor = Executors.newFixedThreadPool(2, new ThreadFactoryImpl("DefaultBrokerHeartbeatManager_executorService_"));
diff --git a/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/ReplicasInfoManager.java b/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/ReplicasInfoManager.java
index 99808d281..b3c76735e 100644
--- a/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/ReplicasInfoManager.java
+++ b/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/ReplicasInfoManager.java
@@ -37,8 +37,8 @@ import org.apache.rocketmq.controller.impl.event.ControllerResult;
import org.apache.rocketmq.controller.impl.event.ElectMasterEvent;
import org.apache.rocketmq.controller.impl.event.EventMessage;
import org.apache.rocketmq.controller.impl.event.EventType;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.protocol.ResponseCode;
import org.apache.rocketmq.remoting.protocol.body.BrokerMemberGroup;
import org.apache.rocketmq.remoting.protocol.body.InSyncStateData;
@@ -59,7 +59,7 @@ import org.apache.rocketmq.remoting.protocol.header.namesrv.controller.RegisterB
* be called sequentially
*/
public class ReplicasInfoManager {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.CONTROLLER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.CONTROLLER_LOGGER_NAME);
private final ControllerConfig controllerConfig;
private final Map<String/* brokerName */, BrokerInfo> replicaInfoTable;
private final Map<String/* brokerName */, SyncStateInfo> syncStateSetInfoTable;
diff --git a/controller/src/main/java/org/apache/rocketmq/controller/processor/ControllerRequestProcessor.java b/controller/src/main/java/org/apache/rocketmq/controller/processor/ControllerRequestProcessor.java
index b7ecfdf1d..42094a6bd 100644
--- a/controller/src/main/java/org/apache/rocketmq/controller/processor/ControllerRequestProcessor.java
+++ b/controller/src/main/java/org/apache/rocketmq/controller/processor/ControllerRequestProcessor.java
@@ -27,8 +27,8 @@ import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.controller.BrokerHeartbeatManager;
import org.apache.rocketmq.controller.ControllerManager;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
+import org.apache.rocketmq.logging.InternalLogger;
+import org.apache.rocketmq.logging.InternalLoggerFactory;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.netty.NettyRequestProcessor;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
@@ -59,7 +59,7 @@ import static org.apache.rocketmq.remoting.protocol.RequestCode.UPDATE_CONTROLLE
* Processor for controller request
*/
public class ControllerRequestProcessor implements NettyRequestProcessor {
- private static final Logger log = LoggerFactory.getLogger(LoggerName.CONTROLLER_LOGGER_NAME);
+ private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.CONTROLLER_LOGGER_NAME);
private static final int WAIT_TIMEOUT_OUT = 5;
private final ControllerManager controllerManager;
private final BrokerHeartbeatManager heartbeatManager;
diff --git a/controller/src/test/resources/logback-test.xml b/controller/src/test/resources/logback-test.xml
new file mode 100644
index 000000000..e7ebef1af
--- /dev/null
+++ b/controller/src/test/resources/logback-test.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
+ ~ contributor license agreements. See the NOTICE file distributed with
+ ~ this work for additional information regarding copyright ownership.
+ ~ The ASF licenses this file to You under the Apache License, Version 2.0
+ ~ (the "License"); you may not use this file except in compliance with
+ ~ the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<configuration>
+
+ <appender name="DefaultAppender" class="ch.qos.logback.core.ConsoleAppender">
+ <append>true</append>
+ <encoder>
+ <pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
+ <charset class="java.nio.charset.Charset">UTF-8</charset>
+ </encoder>
+ </appender>
+
+ <root>
+ <level value="OFF"/>
+ <appender-ref ref="DefaultAppender"/>
+ </root>
+</configuration>
diff --git a/controller/src/test/resources/rmq.logback-test.xml b/controller/src/test/resources/rmq.logback-test.xml
deleted file mode 100644
index c3ec0d1e8..000000000
--- a/controller/src/test/resources/rmq.logback-test.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-<configuration>
-
- <appender name="CONSOLE" class="org.apache.rocketmq.shade.ch.qos.logback.core.ConsoleAppender">
- <layout class="org.apache.rocketmq.shade.ch.qos.logback.classic.PatternLayout">
- <Pattern>
- %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
- </Pattern>
- </layout>
- </appender>
-
- <logger name="org.apache.rocketmq" level="error" additivity="false">
- <appender-ref ref="CONSOLE"/>
- </logger>
-
- <root level="error">
- <appender-ref ref="CONSOLE"/>
- </root>
-
-</configuration>
\ No newline at end of file
diff --git a/broker/src/main/resources/rmq.broker.logback.xml b/distribution/conf/logback_broker.xml
similarity index 69%
rename from broker/src/main/resources/rmq.broker.logback.xml
rename to distribution/conf/logback_broker.xml
index 72a2c8732..3daa0b2f2 100644
--- a/broker/src/main/resources/rmq.broker.logback.xml
+++ b/distribution/conf/logback_broker.xml
@@ -18,15 +18,15 @@
<configuration scan="true" scanPeriod="30 seconds">
<appender name="DefaultAppender"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/broker_default.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/broker_default.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -36,15 +36,15 @@
</appender>
<appender name="RocketmqBrokerAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/broker.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/broker.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>20</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>128MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -52,20 +52,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqBrokerAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqBrokerAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqBrokerAppender_inner"/>
</appender>
<appender name="RocketmqProtectionAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/protection.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/protection.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -73,20 +73,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqProtectionAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqProtectionAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqProtectionAppender_inner"/>
</appender>
<appender name="RocketmqWaterMarkAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/watermark.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/watermark.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -94,20 +94,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqWaterMarkAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqWaterMarkAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqWaterMarkAppender_inner"/>
</appender>
<appender name="RocketmqStoreAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/store.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/store.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>128MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -115,20 +115,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqStoreAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqStoreAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqStoreAppender_inner"/>
</appender>
<appender name="RocketmqTrafficAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/broker_traffic.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/broker_traffic.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -136,20 +136,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqTrafficAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqTrafficAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqTrafficAppender_inner"/>
</appender>
<appender name="RocketmqRemotingAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/remoting.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/remoting.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -157,20 +157,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqRemotingAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqRemotingAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqRemotingAppender_inner"/>
</appender>
<appender name="RocketmqStoreErrorAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/storeerror.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/storeerror.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -178,21 +178,21 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqStoreErrorAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqStoreErrorAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqStoreErrorAppender_inner"/>
</appender>
<appender name="RocketmqTransactionAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/transaction.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/transaction.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -200,20 +200,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqTransactionAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqTransactionAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqTransactionAppender_inner"/>
</appender>
<appender name="RocketmqRebalanceLockAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/lock.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/lock.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -221,20 +221,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqRebalanceLockAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqRebalanceLockAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqRebalanceLockAppender_inner"/>
</appender>
<appender name="RocketmqFilterAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/filter.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/filter.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -242,20 +242,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqFilterAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqFilterAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqFilterAppender_inner"/>
</appender>
<appender name="RocketmqStatsAppender"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/stats.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/stats.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -265,31 +265,31 @@
</appender>
<appender name="RocketmqCommercialAppender"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/commercial.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/commercial.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>500MB</maxFileSize>
</triggeringPolicy>
</appender>
<appender name="RocketmqPopAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/pop.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/pop.%i.log
</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>20</maxIndex>
</rollingPolicy>
<triggeringPolicy
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>128MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -298,11 +298,11 @@
</encoder>
</appender>
- <appender name="RocketmqPopAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqPopAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqPopAppender_inner"/>
</appender>
- <appender name="STDOUT" class="org.apache.rocketmq.shade.ch.qos.logback.core.ConsoleAppender">
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<append>true</append>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
diff --git a/controller/src/main/resources/rmq.controller.logback.xml b/distribution/conf/logback_controller.xml
similarity index 79%
rename from controller/src/main/resources/rmq.controller.logback.xml
rename to distribution/conf/logback_controller.xml
index b6706f4bd..ad49dac03 100644
--- a/controller/src/main/resources/rmq.controller.logback.xml
+++ b/distribution/conf/logback_controller.xml
@@ -18,16 +18,16 @@
<configuration>
<appender name="DefaultAppender"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/controller_default.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/controller_default.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
<triggeringPolicy
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -37,16 +37,16 @@
</appender>
<appender name="RocketmqControllerAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/controller.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/controller.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
<triggeringPolicy
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -54,12 +54,12 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqControllerAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqControllerAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqControllerAppender_inner"/>
<discardingThreshold>0</discardingThreshold>
</appender>
- <appender name="STDOUT" class="org.apache.rocketmq.shade.ch.qos.logback.core.ConsoleAppender">
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<append>true</append>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
diff --git a/namesrv/src/main/resources/rmq.namesrv.logback.xml b/distribution/conf/logback_namesrv.xml
similarity index 77%
rename from namesrv/src/main/resources/rmq.namesrv.logback.xml
rename to distribution/conf/logback_namesrv.xml
index f8ac6fbbd..f8e0c59ac 100644
--- a/namesrv/src/main/resources/rmq.namesrv.logback.xml
+++ b/distribution/conf/logback_namesrv.xml
@@ -18,16 +18,16 @@
<configuration scan="true" scanPeriod="30 seconds">
<appender name="DefaultAppender"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/namesrv_default.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/namesrv_default.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
<triggeringPolicy
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -37,16 +37,16 @@
</appender>
<appender name="RocketmqNamesrvAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/namesrv.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/namesrv.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
<triggeringPolicy
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -54,21 +54,21 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqNamesrvAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqNamesrvAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqNamesrvAppender_inner"/>
<discardingThreshold>0</discardingThreshold>
</appender>
<appender name="RocketmqTrafficAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/namesrv_traffic.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/namesrv_traffic.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -76,11 +76,11 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqTrafficAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqTrafficAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqTrafficAppender_inner"/>
</appender>
- <appender name="STDOUT" class="org.apache.rocketmq.shade.ch.qos.logback.core.ConsoleAppender">
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<append>true</append>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
diff --git a/proxy/src/main/resources/rmq.proxy.logback.xml b/distribution/conf/logback_proxy.xml
similarity index 69%
rename from proxy/src/main/resources/rmq.proxy.logback.xml
rename to distribution/conf/logback_proxy.xml
index cd9d9dd40..a0101dcfd 100644
--- a/proxy/src/main/resources/rmq.proxy.logback.xml
+++ b/distribution/conf/logback_proxy.xml
@@ -19,15 +19,15 @@
<configuration>
<appender name="RocketmqProxyAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/proxy.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/proxy.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>128MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -35,20 +35,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqProxyAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqProxyAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqProxyAppender_inner"/>
</appender>
<appender name="RocketmqProxyWatermarkAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/proxy_watermark.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/proxy_watermark.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>128MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -56,21 +56,21 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqProxyWatermarkAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqProxyWatermarkAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqProxyWatermarkAppender_inner"/>
</appender>
<!-- Below is the logger configuration for broker-->
<appender name="DefaultAppender"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/broker_default.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/broker_default.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -80,15 +80,15 @@
</appender>
<appender name="RocketmqBrokerAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/broker.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/broker.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>20</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>128MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -96,20 +96,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqBrokerAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqBrokerAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqBrokerAppender_inner"/>
</appender>
<appender name="RocketmqProtectionAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/protection.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/protection.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -117,20 +117,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqProtectionAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqProtectionAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqProtectionAppender_inner"/>
</appender>
<appender name="RocketmqWaterMarkAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/watermark.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/watermark.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -138,20 +138,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqWaterMarkAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqWaterMarkAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqWaterMarkAppender_inner"/>
</appender>
<appender name="RocketmqStoreAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/store.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/store.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>128MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -159,20 +159,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqStoreAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqStoreAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqStoreAppender_inner"/>
</appender>
<appender name="RocketmqRemotingAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/remoting.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/remoting.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -180,20 +180,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqRemotingAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqRemotingAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqRemotingAppender_inner"/>
</appender>
<appender name="RocketmqStoreErrorAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/storeerror.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/storeerror.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -201,21 +201,21 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqStoreErrorAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqStoreErrorAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqStoreErrorAppender_inner"/>
</appender>
<appender name="RocketmqTransactionAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/transaction.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/transaction.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -223,20 +223,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqTransactionAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqTransactionAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqTransactionAppender_inner"/>
</appender>
<appender name="RocketmqRebalanceLockAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/lock.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/lock.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -244,20 +244,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqRebalanceLockAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqRebalanceLockAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqRebalanceLockAppender_inner"/>
</appender>
<appender name="RocketmqFilterAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/filter.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/filter.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -265,20 +265,20 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqFilterAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqFilterAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqFilterAppender_inner"/>
</appender>
<appender name="RocketmqStatsAppender"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/stats.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/stats.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -288,31 +288,31 @@
</appender>
<appender name="RocketmqCommercialAppender"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/${brokerLogDir}/commercial.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/${brokerLogDir}/commercial.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>500MB</maxFileSize>
</triggeringPolicy>
</appender>
<appender name="RocketmqPopAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/pop.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/pop.%i.log
</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>20</maxIndex>
</rollingPolicy>
<triggeringPolicy
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>128MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -321,11 +321,11 @@
</encoder>
</appender>
- <appender name="RocketmqPopAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqPopAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqPopAppender_inner"/>
</appender>
- <appender name="STDOUT" class="org.apache.rocketmq.shade.ch.qos.logback.core.ConsoleAppender">
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<append>true</append>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
diff --git a/tools/src/main/resources/rmq.tools.logback.xml b/distribution/conf/logback_tools.xml
similarity index 79%
rename from tools/src/main/resources/rmq.tools.logback.xml
rename to distribution/conf/logback_tools.xml
index babd1c687..4a931365b 100644
--- a/tools/src/main/resources/rmq.tools.logback.xml
+++ b/distribution/conf/logback_tools.xml
@@ -18,15 +18,15 @@
<configuration scan="true" scanPeriod="30 seconds">
<appender name="DefaultAppender"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/tools_default.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/tools_default.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
- <triggeringPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -36,16 +36,16 @@
</appender>
<appender name="RocketmqToolsAppender_inner"
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.RollingFileAppender">
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/rocketmqlogs/tools.log</file>
<append>true</append>
- <rollingPolicy class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/rocketmqlogs/otherdays/tools.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
<triggeringPolicy
- class="org.apache.rocketmq.shade.ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
@@ -53,12 +53,12 @@
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
- <appender name="RocketmqToolsAppender" class="org.apache.rocketmq.shade.ch.qos.logback.classic.AsyncAppender">
+ <appender name="RocketmqToolsAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqToolsAppender_inner"/>
</appender>
- <appender name="STDOUT" class="org.apache.rocketmq.shade.ch.qos.logback.core.ConsoleAppender">
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<append>true</append>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
diff --git a/example/pom.xml b/example/pom.xml
index 197002eef..22a01c6c8 100644
--- a/example/pom.xml
+++ b/example/pom.xml
@@ -35,22 +35,26 @@
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-client</artifactId>
- <version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-srvutil</artifactId>
- <version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-openmessaging</artifactId>
- <version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-acl</artifactId>
- <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rocketmq-tools</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
diff --git a/example/src/main/java/org/apache/rocketmq/example/benchmark/BatchProducer.java b/example/src/main/java/org/apache/rocketmq/example/benchmark/BatchProducer.java
index e182e3637..23e922766 100644
--- a/example/src/main/java/org/apache/rocketmq/example/benchmark/BatchProducer.java
+++ b/example/src/main/java/org/apache/rocketmq/example/benchmark/BatchProducer.java
@@ -35,18 +35,18 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.client.producer.SendStatus;
import org.apache.rocketmq.common.ThreadFactoryImpl;
import org.apache.rocketmq.common.UtilAll;
import org.apache.rocketmq.common.message.Message;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
import org.apache.rocketmq.remoting.protocol.SerializeType;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
import org.apache.rocketmq.srvutil.ServerUtil;
public class BatchProducer {
@@ -95,7 +95,7 @@ public class BatchProducer {
final DefaultMQProducer producer = initInstance(namesrv, msgTraceEnable, rpcHook);
producer.start();
- final Logger logger = LoggerFactory.getLogger(BatchProducer.class);
+ final InternalLogger log = ClientLogger.getLog();
final ExecutorService sendThreadPool = Executors.newFixedThreadPool(threadCount);
for (int i = 0; i < threadCount; i++) {
sendThreadPool.execute(new Runnable() {
@@ -137,7 +137,7 @@ public class BatchProducer {
} catch (RemotingException e) {
statsBenchmark.getSendRequestFailedCount().increment();
statsBenchmark.getSendMessageFailedCount().add(msgs.size());
- logger.error("[BENCHMARK_PRODUCER] Send Exception", e);
+ log.error("[BENCHMARK_PRODUCER] Send Exception", e);
try {
Thread.sleep(3000);
@@ -152,15 +152,15 @@ public class BatchProducer {
}
statsBenchmark.getSendRequestFailedCount().increment();
statsBenchmark.getSendMessageFailedCount().add(msgs.size());
- logger.error("[BENCHMARK_PRODUCER] Send Exception", e);
+ log.error("[BENCHMARK_PRODUCER] Send Exception", e);
} catch (MQClientException e) {
statsBenchmark.getSendRequestFailedCount().increment();
statsBenchmark.getSendMessageFailedCount().add(msgs.size());
- logger.error("[BENCHMARK_PRODUCER] Send Exception", e);
+ log.error("[BENCHMARK_PRODUCER] Send Exception", e);
} catch (MQBrokerException e) {
statsBenchmark.getSendRequestFailedCount().increment();
statsBenchmark.getSendMessageFailedCount().add(msgs.size());
- logger.error("[BENCHMARK_PRODUCER] Send Exception", e);
+ log.error("[BENCHMARK_PRODUCER] Send Exception", e);
try {
Thread.sleep(3000);
} catch (InterruptedException ignored) {
diff --git a/example/src/main/java/org/apache/rocketmq/example/benchmark/Producer.java b/example/src/main/java/org/apache/rocketmq/example/benchmark/Producer.java
index 23896a250..24266a7b1 100644
--- a/example/src/main/java/org/apache/rocketmq/example/benchmark/Producer.java
+++ b/example/src/main/java/org/apache/rocketmq/example/benchmark/Producer.java
@@ -27,17 +27,17 @@ import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.UtilAll;
import org.apache.rocketmq.common.message.Message;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
import org.apache.rocketmq.remoting.protocol.SerializeType;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
import org.apache.rocketmq.srvutil.ServerUtil;
import java.util.Arrays;
@@ -53,8 +53,6 @@ import java.util.concurrent.atomic.AtomicLong;
public class Producer {
- private static final Logger log = LoggerFactory.getLogger(Producer.class);
-
private static byte[] msgBody;
private static final int MAX_LENGTH_ASYNC_QUEUE = 10000;
private static final int SLEEP_FOR_A_WHILE = 100;
@@ -93,6 +91,8 @@ public class Producer {
}
msgBody = sb.toString().getBytes(StandardCharsets.UTF_8);
+ final InternalLogger log = ClientLogger.getLog();
+
final ExecutorService sendThreadPool = Executors.newFixedThreadPool(threadCount);
final StatsBenchmarkProducer statsBenchmark = new StatsBenchmarkProducer();
diff --git a/example/src/main/java/org/apache/rocketmq/example/benchmark/timer/TimerProducer.java b/example/src/main/java/org/apache/rocketmq/example/benchmark/timer/TimerProducer.java
index e1a18dc75..e4b1d87cc 100644
--- a/example/src/main/java/org/apache/rocketmq/example/benchmark/timer/TimerProducer.java
+++ b/example/src/main/java/org/apache/rocketmq/example/benchmark/timer/TimerProducer.java
@@ -23,14 +23,14 @@ import org.apache.commons.cli.Options;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.common.ThreadFactoryImpl;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.common.message.MessageConst;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.remoting.exception.RemotingException;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
import org.apache.rocketmq.srvutil.ServerUtil;
import java.io.UnsupportedEncodingException;
@@ -48,7 +48,7 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
public class TimerProducer {
- private static final Logger log = LoggerFactory.getLogger(TimerProducer.class);
+ private static final InternalLogger LOGGER = ClientLogger.getLog();
private final String topic;
private final int threadCount;
@@ -188,17 +188,17 @@ public class TimerProducer {
}
} catch (RemotingException e) {
statsBenchmark.getSendRequestFailedCount().incrementAndGet();
- log.error("[BENCHMARK_PRODUCER] Send Exception", e);
+ LOGGER.error("[BENCHMARK_PRODUCER] Send Exception", e);
sleep(3000);
} catch (InterruptedException e) {
statsBenchmark.getSendRequestFailedCount().incrementAndGet();
sleep(3000);
} catch (MQClientException e) {
statsBenchmark.getSendRequestFailedCount().incrementAndGet();
- log.error("[BENCHMARK_PRODUCER] Send Exception", e);
+ LOGGER.error("[BENCHMARK_PRODUCER] Send Exception", e);
} catch (MQBrokerException e) {
statsBenchmark.getReceiveResponseFailedCount().incrementAndGet();
- log.error("[BENCHMARK_PRODUCER] Send Exception", e);
+ LOGGER.error("[BENCHMARK_PRODUCER] Send Exception", e);
sleep(3000);
}
}
diff --git a/example/src/main/java/org/apache/rocketmq/example/rpc/AsyncRequestProducer.java b/example/src/main/java/org/apache/rocketmq/example/rpc/AsyncRequestProducer.java
index 1d4989342..072291d5c 100644
--- a/example/src/main/java/org/apache/rocketmq/example/rpc/AsyncRequestProducer.java
+++ b/example/src/main/java/org/apache/rocketmq/example/rpc/AsyncRequestProducer.java
@@ -18,15 +18,15 @@
package org.apache.rocketmq.example.rpc;
import org.apache.rocketmq.client.exception.MQClientException;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.RequestCallback;
import org.apache.rocketmq.common.message.Message;
+import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.remoting.common.RemotingHelper;
-import org.apache.rocketmq.shade.org.slf4j.Logger;
-import org.apache.rocketmq.shade.org.slf4j.LoggerFactory;
public class AsyncRequestProducer {
- private static final Logger log = LoggerFactory.getLogger(AsyncRequestProducer.class);
+ private static final InternalLogger log = ClientLogger.getLog();
public static void main(String[] args) throws MQClientException, InterruptedException {
String producerGroup = "please_rename_unique_group_name";
diff --git a/example/src/main/java/org/apache/rocketmq/example/simple/PopPushConsumer.java b/example/src/main/java/org/apache/rocketmq/example/simple/PopPushConsumer.java
new file mode 100644
index 000000000..b2695db60
--- /dev/null
+++ b/example/src/main/java/org/apache/rocketmq/example/simple/PopPushConsumer.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.rocketmq.example.simple;
+
+import java.util.Set;
+import java.util.stream.Collectors;
+import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
+import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
+import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
+import org.apache.rocketmq.common.consumer.ConsumeFromWhere;
+import org.apache.rocketmq.common.message.MessageRequestMode;
+import org.apache.rocketmq.remoting.protocol.body.ClusterInfo;
+import org.apache.rocketmq.remoting.protocol.route.BrokerData;
+import org.apache.rocketmq.tools.admin.DefaultMQAdminExt;
+
+public class PopPushConsumer {
+
+ public static final String CONSUMER_GROUP = "CID_JODIE_1";
+ public static final String TOPIC = "TopicTest";
+
+ // Or use AdminTools directly: mqadmin setConsumeMode -c cluster -t topic -g group -m POP -n 8
+ private static void switchPop() throws Exception {
+ DefaultMQAdminExt mqAdminExt = new DefaultMQAdminExt();
+ mqAdminExt.start();
+
+ ClusterInfo clusterInfo = mqAdminExt.examineBrokerClusterInfo();
+ Set<String> brokerAddrs = clusterInfo.getBrokerAddrTable().values().stream().map(BrokerData::selectBrokerAddr).collect(Collectors.toSet());
+
+ for (String brokerAddr : brokerAddrs) {
+ mqAdminExt.setMessageRequestMode(brokerAddr, TOPIC, CONSUMER_GROUP, MessageRequestMode.POP, 8, 3_000);
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+ switchPop();
+
+ DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(CONSUMER_GROUP);
+ consumer.subscribe(TOPIC, "*");
+ consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET);
+ consumer.registerMessageListener((MessageListenerConcurrently) (msgs, context) -> {
+ System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), msgs);
+ return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
+ });
+ consumer.setClientRebalance(false);
+ consumer.start();
+ System.out.printf("Consumer Started.%n");
+ }
+}
diff --git a/filter/BUILD.bazel b/filter/BUILD.bazel
index 048c3bdb6..7b6c8687b 100644
--- a/filter/BUILD.bazel
+++ b/filter/BUILD.bazel
@@ -23,6 +23,7 @@ java_library(
deps = [
"//common",
"//remoting",
+ "//logging",
"//srvutil",
"@maven//:org_apache_commons_commons_lang3",
"@maven//:commons_validator_commons_validator",
diff --git a/filter/pom.xml b/filter/pom.xml
index d83729148..e26c72fec 100644
--- a/filter/pom.xml
+++ b/filter/pom.xml
@@ -36,12 +36,10 @@
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-common</artifactId>
- <version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-srvutil</artifactId>
- <version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
diff --git a/filter/src/test/resources/rmq.logback-test.xml b/filter/src/test/resources/rmq.logback-test.xml
deleted file mode 100644
index c3ec0d1e8..000000000
--- a/filter/src/test/resources/rmq.logback-test.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-<configuration>
-
- <appender name="CONSOLE" class="org.apache.rocketmq.shade.ch.qos.logback.core.ConsoleAppender">
- <layout class="org.apache.rocketmq.shade.ch.qos.logback.classic.PatternLayout">
- <Pattern>
- %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
- </Pattern>
- </layout>
- </appender>
-
- <logger name="org.apache.rocketmq" level="error" additivity="false">
- <appender-ref ref="CONSOLE"/>
- </logger>
-
- <root level="error">
- <appender-ref ref="CONSOLE"/>
- </root>
-
-</configuration>
\ No newline at end of file
diff --git a/logging/BUILD.bazel b/logging/BUILD.bazel
new file mode 100644
index 000000000..a2380e71e
--- /dev/null
+++ b/logging/BUILD.bazel
@@ -0,0 +1,24 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+java_library(
+ name = "logging",
+ srcs = glob(["src/main/java/**/*.java"]),
+ deps = [
+ "@maven//:org_slf4j_slf4j_api",
+ ],
+ visibility = ["//visibility:public"],
+)
\ No newline at end of file
diff --git a/container/pom.xml b/logging/pom.xml
similarity index 77%
copy from container/pom.xml
copy to logging/pom.xml
index dc7ab5dfb..4d879cf1e 100644
--- a/container/pom.xml
+++ b/logging/pom.xml
@@ -14,7 +14,9 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-all</artifactId>
@@ -23,24 +25,24 @@
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
- <artifactId>rocketmq-container</artifactId>
- <name>rocketmq-container ${project.version}</name>
+ <artifactId>rocketmq-logging</artifactId>
+ <name>rocketmq-logging ${project.version}</name>
<properties>
<project.root>${basedir}/..</project.root>
</properties>
<dependencies>
- <dependency>
- <groupId>org.apache.rocketmq</groupId>
- <artifactId>rocketmq-broker</artifactId>
- <version>${project.version}</version>
- </dependency>
-
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
-</project>
+
+</project>
\ No newline at end of file
diff --git a/logging/src/main/java/org/apache/rocketmq/logging/InnerLoggerFactory.java b/logging/src/main/java/org/apache/rocketmq/logging/InnerLoggerFactory.java
new file mode 100644
index 000000000..114e068ea
--- /dev/null
+++ b/logging/src/main/java/org/apache/rocketmq/logging/InnerLoggerFactory.java
@@ -0,0 +1,482 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rocketmq.logging;
+
+import org.apache.rocketmq.logging.inner.Logger;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class InnerLoggerFactory extends InternalLoggerFactory {
+
+ public InnerLoggerFactory() {
+ doRegister();
+ }
+
+ @Override
+ protected InternalLogger getLoggerInstance(String name) {
+ return new InnerLogger(name);
+ }
+
+ @Override
+ protected String getLoggerType() {
+ return LOGGER_INNER;
+ }
+
+ @Override
+ protected void shutdown() {
+ Logger.getRepository().shutdown();
+ }
+
+ public static class InnerLogger implements InternalLogger {
+
+ private Logger logger;
+
+ public InnerLogger(String name) {
+ logger = Logger.getLogger(name);
+ }
+
+ @Override
+ public String getName() {
+ return logger.getName();
+ }
+
+ @Override
+ public void debug(String var1) {
+ logger.debug(var1);
+ }
+
+ @Override
+ public void debug(String var1, Throwable var2) {
+ logger.debug(var1, var2);
+ }
+
+ @Override
+ public void info(String var1) {
+ logger.info(var1);
+ }
+
+ @Override
+ public void info(String var1, Throwable var2) {
+ logger.info(var1, var2);
+ }
+
+ @Override
+ public void warn(String var1) {
+ logger.warn(var1);
+ }
+
+ @Override
+ public void warn(String var1, Throwable var2) {
+ logger.warn(var1, var2);
+ }
+
+ @Override
+ public void error(String var1) {
+ logger.error(var1);
+ }
+
+ @Override
+ public void error(String var1, Throwable var2) {
+ logger.error(var1, var2);
+ }
+
+ @Override
+ public void debug(String var1, Object var2) {
+ FormattingTuple format = MessageFormatter.format(var1, var2);
+ logger.debug(format.getMessage(), format.getThrowable());
+ }
+
+ @Override
+ public void debug(String var1, Object var2, Object var3) {
+ FormattingTuple format = MessageFormatter.format(var1, var2, var3);
+ logger.debug(format.getMessage(), format.getThrowable());
+ }
+
+ @Override
+ public void debug(String var1, Object... var2) {
+ FormattingTuple format = MessageFormatter.arrayFormat(var1, var2);
+ logger.debug(format.getMessage(), format.getThrowable());
+ }
+
+ @Override
+ public void info(String var1, Object var2) {
+ FormattingTuple format = MessageFormatter.format(var1, var2);
+ logger.info(format.getMessage(), format.getThrowable());
+ }
+
+ @Override
+ public void info(String var1, Object var2, Object var3) {
+ FormattingTuple format = MessageFormatter.format(var1, var2, var3);
+ logger.info(format.getMessage(), format.getThrowable());
+ }
+
+ @Override
+ public void info(String var1, Object... var2) {
+ FormattingTuple format = MessageFormatter.arrayFormat(var1, var2);
+ logger.info(format.getMessage(), format.getThrowable());
+ }
+
+ @Override
+ public void warn(String var1, Object var2) {
+ FormattingTuple format = MessageFormatter.format(var1, var2);
+ logger.warn(format.getMessage(), format.getThrowable());
+ }
+
+ @Override
+ public void warn(String var1, Object... var2) {
+ FormattingTuple format = MessageFormatter.arrayFormat(var1, var2);
+ logger.warn(format.getMessage(), format.getThrowable());
+ }
+
+ @Override
+ public void warn(String var1, Object var2, Object var3) {
+ FormattingTuple format = MessageFormatter.format(var1, var2, var3);
+ logger.warn(format.getMessage(), format.getThrowable());
+ }
+
+ @Override
+ public void error(String var1, Object var2) {
+ FormattingTuple format = MessageFormatter.format(var1, var2);
+ logger.warn(format.getMessage(), format.getThrowable());
+ }
+
+ @Override
+ public void error(String var1, Object var2, Object var3) {
+ FormattingTuple format = MessageFormatter.format(var1, var2, var3);
+ logger.warn(format.getMessage(), format.getThrowable());
+ }
+
+ @Override
+ public void error(String var1, Object... var2) {
+ FormattingTuple format = MessageFormatter.arrayFormat(var1, var2);
+ logger.warn(format.getMessage(), format.getThrowable());
+ }
+
+ public Logger getLogger() {
+ return logger;
+ }
+ }
+
+
+ public static class FormattingTuple {
+ private String message;
+ private Throwable throwable;
+ private Object[] argArray;
+
+ public FormattingTuple(String message) {
+ this(message, null, null);
+ }
+
+ public FormattingTuple(String message, Object[] argArray, Throwable throwable) {
+ this.message = message;
+ this.throwable = throwable;
+ if (throwable == null) {
+ this.argArray = argArray;
+ } else {
+ this.argArray = trimmedCopy(argArray);
+ }
+
+ }
+
+ static Object[] trimmedCopy(Object[] argArray) {
+ if (argArray != null && argArray.length != 0) {
+ int trimemdLen = argArray.length - 1;
+ Object[] trimmed = new Object[trimemdLen];
+ System.arraycopy(argArray, 0, trimmed, 0, trimemdLen);
+ return trimmed;
+ } else {
+ throw new IllegalStateException("non-sensical empty or null argument array");
+ }
+ }
+
+ public String getMessage() {
+ return this.message;
+ }
+
+ public Object[] getArgArray() {
+ return this.argArray;
+ }
+
+ public Throwable getThrowable() {
+ return this.throwable;
+ }
+ }
+
+ public static class MessageFormatter {
+
+ public MessageFormatter() {
+ }
+
+ public static FormattingTuple format(String messagePattern, Object arg) {
+ return arrayFormat(messagePattern, new Object[]{arg});
+ }
+
+ public static FormattingTuple format(String messagePattern, Object arg1, Object arg2) {
+ return arrayFormat(messagePattern, new Object[]{arg1, arg2});
+ }
+
+ static Throwable getThrowableCandidate(Object[] argArray) {
+ if (argArray != null && argArray.length != 0) {
+ Object lastEntry = argArray[argArray.length - 1];
+ return lastEntry instanceof Throwable ? (Throwable) lastEntry : null;
+ } else {
+ return null;
+ }
+ }
+
+ public static FormattingTuple arrayFormat(String messagePattern, Object[] argArray) {
+ Throwable throwableCandidate = getThrowableCandidate(argArray);
+ if (messagePattern == null) {
+ return new FormattingTuple(null, argArray, throwableCandidate);
+ } else if (argArray == null) {
+ return new FormattingTuple(messagePattern);
+ } else {
+ int i = 0;
+ StringBuilder sbuf = new StringBuilder(messagePattern.length() + 50);
+
+ int len;
+ for (len = 0; len < argArray.length; ++len) {
+ int j = messagePattern.indexOf("{}", i);
+ if (j == -1) {
+ if (i == 0) {
+ return new FormattingTuple(messagePattern, argArray, throwableCandidate);
+ }
+
+ sbuf.append(messagePattern.substring(i, messagePattern.length()));
+ return new FormattingTuple(sbuf.toString(), argArray, throwableCandidate);
+ }
+
+ if (isEscapeDelimeter(messagePattern, j)) {
+ if (!isDoubleEscaped(messagePattern, j)) {
+ --len;
+ sbuf.append(messagePattern.substring(i, j - 1));
+ sbuf.append('{');
+ i = j + 1;
+ } else {
+ sbuf.append(messagePattern.substring(i, j - 1));
+ deeplyAppendParameter(sbuf, argArray[len], null);
+ i = j + 2;
+ }
+ } else {
+ sbuf.append(messagePattern.substring(i, j));
+ deeplyAppendParameter(sbuf, argArray[len], null);
+ i = j + 2;
+ }
+ }
+
+ sbuf.append(messagePattern.substring(i, messagePattern.length()));
+ if (len < argArray.length - 1) {
+ return new FormattingTuple(sbuf.toString(), argArray, throwableCandidate);
+ } else {
+ return new FormattingTuple(sbuf.toString(), argArray, null);
+ }
+ }
+ }
+
+ static boolean isEscapeDelimeter(String messagePattern, int delimeterStartIndex) {
+ if (delimeterStartIndex == 0) {
+ return false;
+ } else {
+ char potentialEscape = messagePattern.charAt(delimeterStartIndex - 1);
+ return potentialEscape == 92;
+ }
+ }
+
+ static boolean isDoubleEscaped(String messagePattern, int delimeterStartIndex) {
+ return delimeterStartIndex >= 2 && messagePattern.charAt(delimeterStartIndex - 2) == 92;
+ }
+
+ private static void deeplyAppendParameter(StringBuilder sbuf, Object o, Map<Object[], Object> seenMap) {
+ if (o == null) {
+ sbuf.append("null");
+ } else {
+ if (!o.getClass().isArray()) {
+ safeObjectAppend(sbuf, o);
+ } else if (o instanceof boolean[]) {
+ booleanArrayAppend(sbuf, (boolean[]) o);
+ } else if (o instanceof byte[]) {
+ byteArrayAppend(sbuf, (byte[]) o);
+ } else if (o instanceof char[]) {
+ charArrayAppend(sbuf, (char[]) o);
+ } else if (o instanceof short[]) {
+ shortArrayAppend(sbuf, (short[]) o);
+ } else if (o instanceof int[]) {
+ intArrayAppend(sbuf, (int[]) o);
+ } else if (o instanceof long[]) {
+ longArrayAppend(sbuf, (long[]) o);
+ } else if (o instanceof float[]) {
+ floatArrayAppend(sbuf, (float[]) o);
+ } else if (o instanceof double[]) {
+ doubleArrayAppend(sbuf, (double[]) o);
+ } else {
+ objectArrayAppend(sbuf, (Object[]) o, seenMap);
+ }
+
+ }
+ }
+
+ private static void safeObjectAppend(StringBuilder sbuf, Object o) {
+ try {
+ String t = o.toString();
+ sbuf.append(t);
+ } catch (Throwable var3) {
+ System.err.println("RocketMQ InnerLogger: Failed toString() invocation on an object of type [" + o.getClass().getName() + "]");
+ var3.printStackTrace();
+ sbuf.append("[FAILED toString()]");
+ }
+
+ }
+
+ private static void objectArrayAppend(StringBuilder sbuf, Object[] a, Map<Object[], Object> seenMap) {
+ if (seenMap == null) {
+ seenMap = new HashMap<>();
+ }
+ sbuf.append('[');
+ if (!seenMap.containsKey(a)) {
+ seenMap.put(a, null);
+ int len = a.length;
+
+ for (int i = 0; i < len; ++i) {
+ deeplyAppendParameter(sbuf, a[i], seenMap);
+ if (i != len - 1) {
+ sbuf.append(", ");
+ }
+ }
+
+ seenMap.remove(a);
+ } else {
+ sbuf.append("...");
+ }
+
+ sbuf.append(']');
+ }
+
+ private static void booleanArrayAppend(StringBuilder sbuf, boolean[] a) {
+ sbuf.append('[');
+ int len = a.length;
+
+ for (int i = 0; i < len; ++i) {
+ sbuf.append(a[i]);
+ if (i != len - 1) {
+ sbuf.append(", ");
+ }
+ }
+
+ sbuf.append(']');
+ }
+
+ private static void byteArrayAppend(StringBuilder sbuf, byte[] a) {
+ sbuf.append('[');
+ int len = a.length;
+
+ for (int i = 0; i < len; ++i) {
+ sbuf.append(a[i]);
+ if (i != len - 1) {
+ sbuf.append(", ");
+ }
+ }
+
+ sbuf.append(']');
+ }
+
+ private static void charArrayAppend(StringBuilder sbuf, char[] a) {
+ sbuf.append('[');
+ int len = a.length;
+
+ for (int i = 0; i < len; ++i) {
+ sbuf.append(a[i]);
+ if (i != len - 1) {
+ sbuf.append(", ");
+ }
+ }
+
+ sbuf.append(']');
+ }
+
+ private static void shortArrayAppend(StringBuilder sbuf, short[] a) {
+ sbuf.append('[');
+ int len = a.length;
+
+ for (int i = 0; i < len; ++i) {
+ sbuf.append(a[i]);
+ if (i != len - 1) {
+ sbuf.append(", ");
+ }
+ }
+
+ sbuf.append(']');
+ }
+
+ private static void intArrayAppend(StringBuilder sbuf, int[] a) {
+ sbuf.append('[');
+ int len = a.length;
+
+ for (int i = 0; i < len; ++i) {
+ sbuf.append(a[i]);
+ if (i != len - 1) {
+ sbuf.append(", ");
+ }
+ }
+
+ sbuf.append(']');
+ }
+
+ private static void longArrayAppend(StringBuilder sbuf, long[] a) {
+ sbuf.append('[');
+ int len = a.length;
+
+ for (int i = 0; i < len; ++i) {
+ sbuf.append(a[i]);
+ if (i != len - 1) {
+ sbuf.append(", ");
+ }
+ }
+
+ sbuf.append(']');
+ }
+
+ private static void floatArrayAppend(StringBuilder sbuf, float[] a) {
+ sbuf.append('[');
+ int len = a.length;
+
+ for (int i = 0; i < len; ++i) {
+ sbuf.append(a[i]);
+ if (i != len - 1) {
+ sbuf.append(", ");
+ }
+ }
+
+ sbuf.append(']');
+ }
+
+ private static void doubleArrayAppend(StringBuilder sbuf, double[] a) {
+ sbuf.append('[');
+ int len = a.length;
+
+ for (int i = 0; i < len; ++i) {
+ sbuf.append(a[i]);
+ if (i != len - 1) {
+ sbuf.append(", ");
+ }
+ }
+
+ sbuf.append(']');
+ }
+ }
+}
diff --git a/logging/src/main/java/org/apache/rocketmq/logging/InternalLogger.java b/logging/src/main/java/org/apache/rocketmq/logging/InternalLogger.java
new file mode 100644
index 000000000..fae69dda6
--- /dev/null
+++ b/logging/src/main/java/org/apache/rocketmq/logging/InternalLogger.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rocketmq.logging;
+
+public interface InternalLogger {
+
+ String getName();
+
+ void debug(String var1);
+
+ void debug(String var1, Object var2);
+
+ void debug(String var1, Object var2, Object var3);
+
+ void debug(String var1, Object... var2);
+
+ void debug(String var1, Throwable var2);
+
+ void info(String var1);
+
+ void info(String var1, Object var2);
+
+ void info(String var1, Object var2, Object var3);
+
+ void info(String var1, Object... var2);
+
+ void info(String var1, Throwable var2);
+
+ void warn(String var1);
+
+ void warn(String var1, Object var2);
+
+ void warn(String var1, Object... var2);
+
+ void warn(String var1, Object var2, Object var3);
+
+ void warn(String var1, Throwable var2);
+
+ void error(String var1);
+
+ void error(String var1, Object var2);
+
+ void error(String var1, Object var2, Object var3);
+
+ void error(String var1, Object... var2);
+
+ void error(String var1, Throwable var2);
+}
diff --git a/logging/src/main/java/org/apache/rocketmq/logging/InternalLoggerFactory.java b/logging/src/main/java/org/apache/rocketmq/logging/InternalLoggerFactory.java
new file mode 100644
index 000000000..9c21f664b
--- /dev/null
+++ b/logging/src/main/java/org/apache/rocketmq/logging/InternalLoggerFactory.java
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rocketmq.logging;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+public abstract class InternalLoggerFactory {
+
+ public static final String LOGGER_SLF4J = "slf4j";
+
+ public static final String LOGGER_INNER = "inner";
+
+ public static final String DEFAULT_LOGGER = LOGGER_SLF4J;
+
+ public static final String BROKER_CONTAINER_NAME = "BrokerContainer";
+
+ /**
+ * Loggers with following name will be directed to default logger for LogTail parser.
+ */
+ public static final String CONSUMER_STATS_LOGGER_NAME = "RocketmqConsumerStats";
+ public static final String COMMERCIAL_LOGGER_NAME = "RocketmqCommercial";
+ public static final String ACCOUNT_LOGGER_NAME = "RocketmqAccount";
+
+ private static String loggerType = null;
+
+ public static final ThreadLocal<String> BROKER_IDENTITY = new ThreadLocal<>();
+
+ private static ConcurrentHashMap<String, InternalLoggerFactory> loggerFactoryCache = new ConcurrentHashMap<>();
+
+ public static InternalLogger getLogger(Class clazz) {
+ return getLogger(clazz.getName());
+ }
+
+ public static InternalLogger getLogger(String name) {
+ return getLoggerFactory().getLoggerInstance(name);
+ }
+
+ private static InternalLoggerFactory getLoggerFactory() {
+ InternalLoggerFactory internalLoggerFactory = null;
+ if (loggerType != null) {
+ internalLoggerFactory = loggerFactoryCache.get(loggerType);
+ }
+ if (internalLoggerFactory == null) {
+ internalLoggerFactory = loggerFactoryCache.get(DEFAULT_LOGGER);
+ }
+ if (internalLoggerFactory == null) {
+ internalLoggerFactory = loggerFactoryCache.get(LOGGER_INNER);
+ }
+ if (internalLoggerFactory == null) {
+ throw new RuntimeException("[RocketMQ] Logger init failed, please check logger");
+ }
+ return internalLoggerFactory;
+ }
+
+ public static void setCurrentLoggerType(String type) {
+ loggerType = type;
+ }
+
+ static {
+ try {
+ new Slf4jLoggerFactory();
+ } catch (Throwable e) {
+ //ignore
+ }
+ try {
+ new InnerLoggerFactory();
+ } catch (Throwable e) {
+ //ignore
+ }
+ }
+
+ protected void doRegister() {
+ String loggerType = getLoggerType();
+ if (loggerFactoryCache.get(loggerType) != null) {
+ return;
+ }
+ loggerFactoryCache.put(loggerType, this);
+ }
+
+ protected abstract void shutdown();
+
+ protected abstract InternalLogger getLoggerInstance(String name);
+
+ protected abstract String getLoggerType();
+}
diff --git a/logging/src/main/java/org/apache/rocketmq/logging/Slf4jLoggerFactory.java b/logging/src/main/java/org/apache/rocketmq/logging/Slf4jLoggerFactory.java
new file mode 100644
index 000000000..f1f727cc4
--- /dev/null
+++ b/logging/src/main/java/org/apache/rocketmq/logging/Slf4jLoggerFactory.java
@@ -0,0 +1,193 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rocketmq.logging;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Slf4jLoggerFactory extends InternalLoggerFactory {
+
+ public Slf4jLoggerFactory() {
+ LoggerFactory.getILoggerFactory();
+ doRegister();
+ }
+
+ @Override
+ protected String getLoggerType() {
+ return InternalLoggerFactory.LOGGER_SLF4J;
+ }
+
+ @Override
+ protected InternalLogger getLoggerInstance(String name) {
+ return new Slf4jLogger(name);
+ }
+
+ @Override
+ protected void shutdown() {
+
+ }
+
+ public static class Slf4jLogger implements InternalLogger {
+ private static final Pattern PATTERN = Pattern.compile("#.*#");
+
+ private final String loggerSuffix;
+ private final Logger defaultLogger;
+
+ private final Map<String, Logger> loggerMap = new HashMap<>();
+
+ public Slf4jLogger(String loggerSuffix) {
+ this.loggerSuffix = loggerSuffix;
+ this.defaultLogger = LoggerFactory.getLogger(loggerSuffix);
+ }
+
+ private Logger getLogger() {
+ if (loggerSuffix.equals(ACCOUNT_LOGGER_NAME)
+ || loggerSuffix.equals(CONSUMER_STATS_LOGGER_NAME)
+ || loggerSuffix.equals(COMMERCIAL_LOGGER_NAME)) {
+ return defaultLogger;
+ }
+ String brokerIdentity = InnerLoggerFactory.BROKER_IDENTITY.get();
+ if (brokerIdentity == null) {
+ Matcher m = PATTERN.matcher(Thread.currentThread().getName());
+ if (m.find()) {
+ String match = m.group();
+ brokerIdentity = match.substring(1, match.length() - 1);
+ }
+ }
+ if (InnerLoggerFactory.BROKER_CONTAINER_NAME.equals(brokerIdentity)) {
+ return defaultLogger;
+ }
+ if (brokerIdentity != null) {
+ if (!loggerMap.containsKey(brokerIdentity)) {
+ loggerMap.put(brokerIdentity, LoggerFactory.getLogger("#" + brokerIdentity + "#" + loggerSuffix));
+ }
+ return loggerMap.get(brokerIdentity);
+ }
+ return defaultLogger;
+ }
+
+ @Override
+ public String getName() {
+ return getLogger().getName();
+ }
+
+ @Override
+ public void debug(String s) {
+ getLogger().debug(s);
+ }
+
+ @Override
+ public void debug(String s, Object o) {
+ getLogger().debug(s, o);
+ }
+
+ @Override
+ public void debug(String s, Object o, Object o1) {
+ getLogger().debug(s, o, o1);
+ }
+
+ @Override
+ public void debug(String s, Object... objects) {
+ getLogger().debug(s, objects);
+ }
+
+ @Override
+ public void debug(String s, Throwable throwable) {
+ getLogger().debug(s, throwable);
+ }
+
+ @Override
+ public void info(String s) {
+ getLogger().info(s);
+ }
+
+ @Override
+ public void info(String s, Object o) {
+ getLogger().info(s, o);
+ }
+
+ @Override
+ public void info(String s, Object o, Object o1) {
+ getLogger().info(s, o, o1);
+ }
+
+ @Override
+ public void info(String s, Object... objects) {
+ getLogger().info(s, objects);
+ }
+
+ @Override
+ public void info(String s, Throwable throwable) {
+ getLogger().info(s, throwable);
+ }
+
+ @Override
+ public void warn(String s) {
+ getLogger().warn(s);
+ }
+
+ @Override
+ public void warn(String s, Object o) {
+ getLogger().warn(s, o);
+ }
+
+ @Override
+ public void warn(String s, Object... objects) {
+ getLogger().warn(s, objects);
+ }
+
+ @Override
+ public void warn(String s, Object o, Object o1) {
+ getLogger().warn(s, o, o1);
+ }
+
+ @Override
+ public void warn(String s, Throwable throwable) {
+ getLogger().warn(s, throwable);
+ }
+
+ @Override
+ public void error(String s) {
+ getLogger().error(s);
+ }
+
+ @Override
+ public void error(String s, Object o) {
+ getLogger().error(s, o);
+ }
+
+ @Override
+ public void error(String s, Object o, Object o1) {
+ getLogger().error(s, o, o1);
+ }
+
+ @Override
+ public void error(String s, Object... objects) {
+ getLogger().error(s, objects);
+ }
+
+ @Override
+ public void error(String s, Throwable throwable) {
+ getLogger().error(s, throwable);
+ }
+ }
+}
diff --git a/logging/src/main/java/org/apache/rocketmq/logging/inner/Appender.java b/logging/src/main/java/org/apache/rocketmq/logging/inner/Appender.java
new file mode 100755
index 000000000..d40d6cb31
--- /dev/null
+++ b/logging/src/main/java/org/apache/rocketmq/logging/inner/Appender.java
@@ -0,0 +1,228 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rocketmq.logging.inner;
+
+
+import java.io.InterruptedIOException;
+import java.util.Enumeration;
+import java.util.Vector;
+
+public abstract class Appender {
+
+ public static final int CODE_WRITE_FAILURE = 1;
+ public static final int CODE_FLUSH_FAILURE = 2;
+ public static final int CODE_CLOSE_FAILURE = 3;
+ public static final int CODE_FILE_OPEN_FAILURE = 4;
+
+ public final static String LINE_SEP = System.getProperty("line.separator");
+
+ boolean firstTime = true;
+
+ protected Layout layout;
+
+ protected String name;
+
+ protected boolean closed = false;
+
+ public void activateOptions() {
+ }
+
+ abstract protected void append(LoggingEvent event);
+
+ public void finalize() {
+ try {
+ super.finalize();
+ } catch (Throwable throwable) {
+ SysLogger.error("Finalizing appender named [" + name + "]. error", throwable);
+ }
+ if (this.closed) {
+ return;
+ }
+
+ SysLogger.debug("Finalizing appender named [" + name + "].");
+ close();
+ }
+
+ public Layout getLayout() {
+ return layout;
+ }
+
+ public final String getName() {
+ return this.name;
+ }
+
+ public synchronized void doAppend(LoggingEvent event) {
+ if (closed) {
+ SysLogger.error("Attempted to append to closed appender named [" + name + "].");
+ return;
+ }
+ this.append(event);
+ }
+
+ public void setLayout(Layout layout) {
+ this.layout = layout;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public abstract void close();
+
+ public void handleError(String message, Exception e, int errorCode) {
+ if (e instanceof InterruptedIOException || e instanceof InterruptedException) {
+ Thread.currentThread().interrupt();
+ }
+ if (firstTime) {
+ SysLogger.error(message + " code:" + errorCode, e);
+ firstTime = false;
+ }
+ }
+
+ public void handleError(String message) {
+ if (firstTime) {
+ SysLogger.error(message);
+ firstTime = false;
+ }
+ }
+
+
+ public interface AppenderPipeline {
+
+ void addAppender(Appender newAppender);
+
+ Enumeration getAllAppenders();
+
+ Appender getAppender(String name);
+
+ boolean isAttached(Appender appender);
+
+ void removeAllAppenders();
+
+ void removeAppender(Appender appender);
+
+ void removeAppender(String name);
+ }
+
+
+ public static class AppenderPipelineImpl implements AppenderPipeline {
+
+
+ protected Vector<Appender> appenderList;
+
+ public void addAppender(Appender newAppender) {
+ if (newAppender == null) {
+ return;
+ }
+
+ if (appenderList == null) {
+ appenderList = new Vector<>(1);
+ }
+ if (!appenderList.contains(newAppender)) {
+ appenderList.addElement(newAppender);
+ }
+ }
+
+ public int appendLoopOnAppenders(LoggingEvent event) {
+ int size = 0;
+ Appender appender;
+
+ if (appenderList != null) {
+ size = appenderList.size();
+ for (int i = 0; i < size; i++) {
+ appender = appenderList.elementAt(i);
+ appender.doAppend(event);
+ }
+ }
+ return size;
+ }
+
+ public Enumeration getAllAppenders() {
+ if (appenderList == null) {
+ return null;
+ } else {
+ return appenderList.elements();
+ }
+ }
+
+ public Appender getAppender(String name) {
+ if (appenderList == null || name == null) {
+ return null;
+ }
+
+ int size = appenderList.size();
+ Appender appender;
+ for (int i = 0; i < size; i++) {
+ appender = appenderList.elementAt(i);
+ if (name.equals(appender.getName())) {
+ return appender;
+ }
+ }
+ return null;
+ }
+
+ public boolean isAttached(Appender appender) {
+ if (appenderList == null || appender == null) {
+ return false;
+ }
+
+ int size = appenderList.size();
+ Appender a;
+ for (int i = 0; i < size; i++) {
+ a = appenderList.elementAt(i);
+ if (a == appender) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void removeAllAppenders() {
+ if (appenderList != null) {
+ int len = appenderList.size();
+ for (int i = 0; i < len; i++) {
+ Appender a = appenderList.elementAt(i);
+ a.close();
+ }
+ appenderList.removeAllElements();
+ appenderList = null;
+ }
+ }
+
+ public void removeAppender(Appender appender) {
+ if (appender == null || appenderList == null) {
+ return;
+ }
+ appenderList.removeElement(appender);
+ }
+
+ public void removeAppender(String name) {
+ if (name == null || appenderList == null) {
+ return;
+ }
+ int size = appenderList.size();
+ for (int i = 0; i < size; i++) {
+ if (name.equals((appenderList.elementAt(i)).getName())) {
+ appenderList.removeElementAt(i);
+ break;
+ }
+ }
+ }
+
+ }
+}
diff --git a/common/src/main/java/org/apache/rocketmq/common/AbstractBrokerRunnable.java b/logging/src/main/java/org/apache/rocketmq/logging/inner/Layout.java
similarity index 56%
copy from common/src/main/java/org/apache/rocketmq/common/AbstractBrokerRunnable.java
copy to logging/src/main/java/org/apache/rocketmq/logging/inner/Layout.java
index 8bce59d76..7ea3561df 100644
--- a/common/src/main/java/org/apache/rocketmq/common/AbstractBrokerRunnable.java
+++ b/logging/src/main/java/org/apache/rocketmq/logging/inner/Layout.java
@@ -15,26 +15,25 @@
* limitations under the License.
*/
-package org.apache.rocketmq.common;
+package org.apache.rocketmq.logging.inner;
-public abstract class AbstractBrokerRunnable implements Runnable {
- protected final BrokerIdentity brokerIdentity;
+public abstract class Layout {
- public AbstractBrokerRunnable(BrokerIdentity brokerIdentity) {
- this.brokerIdentity = brokerIdentity;
+ public abstract String format(LoggingEvent event);
+
+ public String getContentType() {
+ return "text/plain";
+ }
+
+ public String getHeader() {
+ return null;
}
- /**
- * real logic for running
- */
- public abstract void run2();
-
- @Override
- public void run() {
- if (brokerIdentity.isInBrokerContainer()) {
- // set threadlocal broker identity to forward logging to corresponding broker
-// InnerLoggerFactory.BROKER_IDENTITY.set(brokerIdentity.getCanonicalName());
- }
- run2();
+ public String getFooter() {
+ return null;
}
-}
+
+
+ abstract public boolean ignoresThrowable();
+
+}
\ No newline at end of file
diff --git a/logging/src/main/java/org/apache/rocketmq/logging/inner/Level.java b/logging/src/main/java/org/apache/rocketmq/logging/inner/Level.java
new file mode 100755
index 000000000..d647adb6b
--- /dev/null
+++ b/logging/src/main/java/org/apache/rocketmq/logging/inner/Level.java
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rocketmq.logging.inner;
+
+import java.io.Serializable;
+
+public class Level implements Serializable {
+
+ transient int level;
+ transient String levelStr;
+ transient int syslogEquivalent;
+
+ public final static int OFF_INT = Integer.MAX_VALUE;
+ public final static int ERROR_INT = 40000;
+ public final static int WARN_INT = 30000;
+ public final static int INFO_INT = 20000;
+ public final static int DEBUG_INT = 10000;
+ public final static int ALL_INT = Integer.MIN_VALUE;
+
+
+ private static final String ALL_NAME = "ALL";
+
+ private static final String DEBUG_NAME = "DEBUG";
+
+ private static final String INFO_NAME = "INFO";
+
+ private static final String WARN_NAME = "WARN";
+
+ private static final String ERROR_NAME = "ERROR";
+
+ private static final String OFF_NAME = "OFF";
+
+ final static public Level OFF = new Level(OFF_INT, OFF_NAME, 0);
+
+ final static public Level ERROR = new Level(ERROR_INT, ERROR_NAME, 3);
+
+ final static public Level WARN = new Level(WARN_INT, WARN_NAME, 4);
+
+ final static public Level INFO = new Level(INFO_INT, INFO_NAME, 6);
+
+ final static public Level DEBUG = new Level(DEBUG_INT, DEBUG_NAME, 7);
+
+ final static public Level ALL = new Level(ALL_INT, ALL_NAME, 7);
+
+ static final long serialVersionUID = 3491141966387921974L;
+
+ protected Level(int level, String levelStr, int syslogEquivalent) {
+ this.level = level;
+ this.levelStr = levelStr;
+ this.syslogEquivalent = syslogEquivalent;
+ }
+
+ public static Level toLevel(String sArg) {
+ return toLevel(sArg, Level.DEBUG);
+ }
+
+ public static Level toLevel(int val) {
+ return toLevel(val, Level.DEBUG);
+ }
+
+ public static Level toLevel(int val, Level defaultLevel) {
+ switch (val) {
+ case ALL_INT:
+ return ALL;
+ case DEBUG_INT:
+ return Level.DEBUG;
+ case INFO_INT:
+ return Level.INFO;
+ case WARN_INT:
+ return Level.WARN;
+ case ERROR_INT:
+ return Level.ERROR;
+ case OFF_INT:
+ return OFF;
+ default:
+ return defaultLevel;
+ }
+ }
+
+ public static Level toLevel(String sArg, Level defaultLevel) {
+ if (sArg == null) {
+ return defaultLevel;
+ }
+ String s = sArg.toUpperCase();
+
+ if (s.equals(ALL_NAME)) {
+ return Level.ALL;
+ }
+ if (s.equals(DEBUG_NAME)) {
+ return Level.DEBUG;
+ }
+ if (s.equals(INFO_NAME)) {
+ return Level.INFO;
+ }
+ if (s.equals(WARN_NAME)) {
+ return Level.WARN;
+ }
+ if (s.equals(ERROR_NAME)) {
+ return Level.ERROR;
+ }
+ if (s.equals(OFF_NAME)) {
+ return Level.OFF;
+ }
+ return defaultLevel;
+ }
+
+
+ public boolean equals(Object o) {
+ if (o instanceof Level) {
+ Level r = (Level) o;
+ return this.level == r.level;
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public int hashCode() {
+ int result = level;
+ result = 31 * result + (levelStr != null ? levelStr.hashCode() : 0);
+ result = 31 * result + syslogEquivalent;
+ return result;
+ }
+
+ public boolean isGreaterOrEqual(Level r) {
+ return level >= r.level;
+ }
+
+ final public String toString() {
+ return levelStr;
+ }
+
+ public final int toInt() {
+ return level;
+ }
+
+}
diff --git a/logging/src/main/java/org/apache/rocketmq/logging/inner/Logger.java b/logging/src/main/java/org/apache/rocketmq/logging/inner/Logger.java
new file mode 100755
index 000000000..7584ea317
--- /dev/null
+++ b/logging/src/main/java/org/apache/rocketmq/logging/inner/Logger.java
@@ -0,0 +1,467 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rocketmq.logging.inner;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Vector;
+
+
+public class Logger implements Appender.AppenderPipeline {
+
+ private static final String FQCN = Logger.class.getName();
+
+ private static final DefaultLoggerRepository REPOSITORY = new DefaultLoggerRepository(new RootLogger(Level.DEBUG));
+
+ public static LoggerRepository getRepository() {
+ return REPOSITORY;
+ }
+
+ private String name;
+
+ volatile private Level level;
+
+ volatile private Logger parent;
+
+ Appender.AppenderPipelineImpl appenderPipeline;
+
+ private boolean additive = true;
+
+ private Logger(String name) {
+ this.name = name;
+ }
+
+ static public Logger getLogger(String name) {
+ return getRepository().getLogger(name);
+ }
+
+ static public Logger getLogger(Class clazz) {
+ return getRepository().getLogger(clazz.getName());
+ }
+
+ public static Logger getRootLogger() {
+ return getRepository().getRootLogger();
+ }
+
+ synchronized public void addAppender(Appender newAppender) {
+ if (appenderPipeline == null) {
+ appenderPipeline = new Appender.AppenderPipelineImpl();
+ }
+ appenderPipeline.addAppender(newAppender);
+ }
+
+ public void callAppenders(LoggingEvent event) {
+ int writes = 0;
+
+ for (Logger logger = this; logger != null; logger = logger.parent) {
+ synchronized (logger) {
+ if (logger.appenderPipeline != null) {
+ writes += logger.appenderPipeline.appendLoopOnAppenders(event);
+ }
+ if (!logger.additive) {
+ break;
+ }
+ }
+ }
+
+ if (writes == 0) {
+ getRepository().emitNoAppenderWarning(this);
+ }
+ }
+
+ synchronized void closeNestedAppenders() {
+ Enumeration enumeration = this.getAllAppenders();
+ if (enumeration != null) {
+ while (enumeration.hasMoreElements()) {
+ Appender a = (Appender) enumeration.nextElement();
+ if (a instanceof Appender.AppenderPipeline) {
+ a.close();
+ }
+ }
+ }
+ }
+
+ public void debug(Object message) {
+ if (getRepository().isDisabled(Level.DEBUG_INT)) {
+ return;
+ }
+ if (Level.DEBUG.isGreaterOrEqual(this.getEffectiveLevel())) {
+ forcedLog(FQCN, Level.DEBUG, message, null);
+ }
+ }
+
+
+ public void debug(Object message, Throwable t) {
+ if (getRepository().isDisabled(Level.DEBUG_INT)) {
+ return;
+ }
+ if (Level.DEBUG.isGreaterOrEqual(this.getEffectiveLevel())) {
+ forcedLog(FQCN, Level.DEBUG, message, t);
+ }
+ }
+
+
+ public void error(Object message) {
+ if (getRepository().isDisabled(Level.ERROR_INT)) {
+ return;
+ }
+ if (Level.ERROR.isGreaterOrEqual(this.getEffectiveLevel())) {
+ forcedLog(FQCN, Level.ERROR, message, null);
+ }
+ }
+
+ public void error(Object message, Throwable t) {
+ if (getRepository().isDisabled(Level.ERROR_INT)) {
+ return;
+ }
+ if (Level.ERROR.isGreaterOrEqual(this.getEffectiveLevel())) {
+ forcedLog(FQCN, Level.ERROR, message, t);
+ }
+
+ }
+
+
+ protected void forcedLog(String fqcn, Level level, Object message, Throwable t) {
+ callAppenders(new LoggingEvent(fqcn, this, level, message, t));
+ }
+
+
+ synchronized public Enumeration getAllAppenders() {
+ if (appenderPipeline == null) {
+ return null;
+ } else {
+ return appenderPipeline.getAllAppenders();
+ }
+ }
+
+ synchronized public Appender getAppender(String name) {
+ if (appenderPipeline == null || name == null) {
+ return null;
+ }
+
+ return appenderPipeline.getAppender(name);
+ }
+
+ public Level getEffectiveLevel() {
+ for (Logger c = this; c != null; c = c.parent) {
+ if (c.level != null) {
+ return c.level;
+ }
+ }
+ return null;
+ }
+
+ public final String getName() {
+ return name;
+ }
+
+ final public Level getLevel() {
+ return this.level;
+ }
+
+
+ public void info(Object message) {
+ if (getRepository().isDisabled(Level.INFO_INT)) {
+ return;
+ }
+ if (Level.INFO.isGreaterOrEqual(this.getEffectiveLevel())) {
+ forcedLog(FQCN, Level.INFO, message, null);
+ }
+ }
+
+ public void info(Object message, Throwable t) {
+ if (getRepository().isDisabled(Level.INFO_INT)) {
+ return;
+ }
+ if (Level.INFO.isGreaterOrEqual(this.getEffectiveLevel())) {
+ forcedLog(FQCN, Level.INFO, message, t);
+ }
+ }
+
+ public boolean isAttached(Appender appender) {
+ return appender != null && appenderPipeline != null && appenderPipeline.isAttached(appender);
+ }
+
+ synchronized public void removeAllAppenders() {
+ if (appenderPipeline != null) {
+ appenderPipeline.removeAllAppenders();
+ appenderPipeline = null;
+ }
+ }
+
+ synchronized public void removeAppender(Appender appender) {
+ if (appender == null || appenderPipeline == null) {
+ return;
+ }
+ appenderPipeline.removeAppender(appender);
+ }
+
+ synchronized public void removeAppender(String name) {
+ if (name == null || appenderPipeline == null) {
+ return;
+ }
+ appenderPipeline.removeAppender(name);
+ }
+
+ public void setAdditivity(boolean additive) {
+ this.additive = additive;
+ }
+
+ public void setLevel(Level level) {
+ this.level = level;
+ }
+
+ public void warn(Object message) {
+ if (getRepository().isDisabled(Level.WARN_INT)) {
+ return;
+ }
+
+ if (Level.WARN.isGreaterOrEqual(this.getEffectiveLevel())) {
+ forcedLog(FQCN, Level.WARN, message, null);
+ }
+ }
+
+ public void warn(Object message, Throwable t) {
+ if (getRepository().isDisabled(Level.WARN_INT)) {
+ return;
+ }
+ if (Level.WARN.isGreaterOrEqual(this.getEffectiveLevel())) {
+ forcedLog(FQCN, Level.WARN, message, t);
+ }
+ }
+
+ public interface LoggerRepository {
+
+ boolean isDisabled(int level);
+
+ void setLogLevel(Level level);
+
+ void emitNoAppenderWarning(Logger cat);
+
+ Level getLogLevel();
+
+ Logger getLogger(String name);
+
+ Logger getRootLogger();
+
+ Logger exists(String name);
+
+ void shutdown();
+
+ Enumeration getCurrentLoggers();
+ }
+
+ public static class ProvisionNode extends Vector<Logger> {
+
+ ProvisionNode(Logger logger) {
+ super();
+ addElement(logger);
+ }
+ }
+
+ public static class DefaultLoggerRepository implements LoggerRepository {
+
+ final Hashtable<CategoryKey,Object> ht = new Hashtable<>();
+ Logger root;
+
+ int logLevelInt;
+ Level logLevel;
+
+ boolean emittedNoAppenderWarning = false;
+
+ public DefaultLoggerRepository(Logger root) {
+ this.root = root;
+ setLogLevel(Level.ALL);
+ }
+
+ public void emitNoAppenderWarning(Logger cat) {
+ if (!this.emittedNoAppenderWarning) {
+ SysLogger.warn("No appenders could be found for logger (" + cat.getName() + ").");
+ SysLogger.warn("Please initialize the logger system properly.");
+ this.emittedNoAppenderWarning = true;
+ }
+ }
+
+ public Logger exists(String name) {
+ Object o = ht.get(new CategoryKey(name));
+ if (o instanceof Logger) {
+ return (Logger) o;
+ } else {
+ return null;
+ }
+ }
+
+ public void setLogLevel(Level l) {
+ if (l != null) {
+ logLevelInt = l.level;
+ logLevel = l;
+ }
+ }
+
+ public Level getLogLevel() {
+ return logLevel;
+ }
+
+
+ public Logger getLogger(String name) {
+ CategoryKey key = new CategoryKey(name);
+ Logger logger;
+
+ synchronized (ht) {
+ Object o = ht.get(key);
+ if (o == null) {
+ logger = makeNewLoggerInstance(name);
+ ht.put(key, logger);
+ updateParents(logger);
+ return logger;
+ } else if (o instanceof Logger) {
+ return (Logger) o;
+ } else if (o instanceof ProvisionNode) {
+ logger = makeNewLoggerInstance(name);
+ ht.put(key, logger);
+ updateChildren((ProvisionNode) o, logger);
+ updateParents(logger);
+ return logger;
+ } else {
+ return null;
+ }
+ }
+ }
+
+ public Logger makeNewLoggerInstance(String name) {
+ return new Logger(name);
+ }
+
+ public Enumeration getCurrentLoggers() {
+ Vector<Logger> loggers = new Vector<>(ht.size());
+
+ Enumeration elems = ht.elements();
+ while (elems.hasMoreElements()) {
+ Object o = elems.nextElement();
+ if (o instanceof Logger) {
+ Logger logger = (Logger)o;
+ loggers.addElement(logger);
+ }
+ }
+ return loggers.elements();
+ }
+
+
+ public Logger getRootLogger() {
+ return root;
+ }
+
+ public boolean isDisabled(int level) {
+ return logLevelInt > level;
+ }
+
+
+ public void shutdown() {
+ Logger root = getRootLogger();
+ root.closeNestedAppenders();
+
+ synchronized (ht) {
+ Enumeration cats = this.getCurrentLoggers();
+ while (cats.hasMoreElements()) {
+ Logger c = (Logger) cats.nextElement();
+ c.closeNestedAppenders();
+ }
+ root.removeAllAppenders();
+ }
+ }
+
+
+ private void updateParents(Logger cat) {
+ String name = cat.name;
+ int length = name.length();
+ boolean parentFound = false;
+
+ for (int i = name.lastIndexOf('.', length - 1); i >= 0;
+ i = name.lastIndexOf('.', i - 1)) {
+ String substr = name.substring(0, i);
+
+ CategoryKey key = new CategoryKey(substr);
+ Object o = ht.get(key);
+ if (o == null) {
+ ht.put(key, new ProvisionNode(cat));
+ } else if (o instanceof Logger) {
+ parentFound = true;
+ cat.parent = (Logger) o;
+ break;
+ } else if (o instanceof ProvisionNode) {
+ ((ProvisionNode) o).addElement(cat);
+ } else {
+ Exception e = new IllegalStateException("unexpected object type " + o.getClass() + " in ht.");
+ e.printStackTrace();
+ }
+ }
+ if (!parentFound) {
+ cat.parent = root;
+ }
+ }
+
+ private void updateChildren(ProvisionNode pn, Logger logger) {
+ final int last = pn.size();
+
+ for (int i = 0; i < last; i++) {
+ Logger l = pn.elementAt(i);
+ if (!l.parent.name.startsWith(logger.name)) {
+ logger.parent = l.parent;
+ l.parent = logger;
+ }
+ }
+ }
+
+ private class CategoryKey {
+
+ String name;
+ int hashCache;
+
+ CategoryKey(String name) {
+ this.name = name;
+ hashCache = name.hashCode();
+ }
+
+ final public int hashCode() {
+ return hashCache;
+ }
+
+ final public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+
+ if (o != null && o instanceof CategoryKey) {
+ CategoryKey cc = (CategoryKey) o;
+ return name.equals(cc.name);
+ } else {
+ return false;
+ }
+ }
+ }
+
+ }
+
+ public static class RootLogger extends Logger {
+
+ public RootLogger(Level level) {
+ super("root");
+ setLevel(level);
+ }
+ }
+}
diff --git a/logging/src/main/java/org/apache/rocketmq/logging/inner/LoggingBuilder.java b/logging/src/main/java/org/apache/rocketmq/logging/inner/LoggingBuilder.java
new file mode 100644
index 000000000..ea669cfcf
--- /dev/null
+++ b/logging/src/main/java/org/apache/rocketmq/logging/inner/LoggingBuilder.java
@@ -0,0 +1,1231 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rocketmq.logging.inner;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FilterWriter;
+import java.io.IOException;
+import java.io.InterruptedIOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.nio.charset.StandardCharsets;
+import java.text.MessageFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Enumeration;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.TimeZone;
+
+public class LoggingBuilder {
+
+ public static final String SYSTEM_OUT = "System.out";
+ public static final String SYSTEM_ERR = "System.err";
+
+ public static final String LOGGING_ENCODING = "rocketmq.logging.inner.encoding";
+ public static final String ENCODING = System.getProperty(LOGGING_ENCODING, "UTF-8");
+
+ public static AppenderBuilder newAppenderBuilder() {
+ return new AppenderBuilder();
+ }
+
+ public static class AppenderBuilder {
+ private AsyncAppender asyncAppender;
+
+ private Appender appender = null;
+
+ private AppenderBuilder() {
+
+ }
+
+ public AppenderBuilder withLayout(Layout layout) {
+ appender.setLayout(layout);
+ return this;
+ }
+
+ public AppenderBuilder withName(String name) {
+ appender.setName(name);
+ return this;
+ }
+
+ public AppenderBuilder withConsoleAppender(String target) {
+ ConsoleAppender consoleAppender = new ConsoleAppender();
+ consoleAppender.setTarget(target);
+ consoleAppender.activateOptions();
+ this.appender = consoleAppender;
+ return this;
+ }
+
+ public AppenderBuilder withFileAppender(String file) {
+ FileAppender appender = new FileAppender();
+ appender.setFile(file);
+ appender.setAppend(true);
+ appender.setBufferedIO(false);
+ appender.setEncoding(ENCODING);
+ appender.setImmediateFlush(true);
+ appender.activateOptions();
+ this.appender = appender;
+ return this;
+ }
+
+ public AppenderBuilder withRollingFileAppender(String file, String maxFileSize, int maxFileIndex) {
+ RollingFileAppender appender = new RollingFileAppender();
+ appender.setFile(file);
+ appender.setAppend(true);
+ appender.setBufferedIO(false);
+ appender.setEncoding(ENCODING);
+ appender.setImmediateFlush(true);
+ appender.setMaximumFileSize(Integer.parseInt(maxFileSize));
+ appender.setMaxBackupIndex(maxFileIndex);
+ appender.activateOptions();
+ this.appender = appender;
+ return this;
+ }
+
+ public AppenderBuilder withDailyFileRollingAppender(String file, String datePattern) {
+ DailyRollingFileAppender appender = new DailyRollingFileAppender();
+ appender.setFile(file);
+ appender.setAppend(true);
+ appender.setBufferedIO(false);
+ appender.setEncoding(ENCODING);
+ appender.setImmediateFlush(true);
+ appender.setDatePattern(datePattern);
+ appender.activateOptions();
+ this.appender = appender;
+ return this;
+ }
+
+ public AppenderBuilder withAsync(boolean blocking, int buffSize) {
+ AsyncAppender asyncAppender = new AsyncAppender();
+ asyncAppender.setBlocking(blocking);
+ asyncAppender.setBufferSize(buffSize);
+ this.asyncAppender = asyncAppender;
+ return this;
+ }
+
+ public Appender build() {
+ if (appender == null) {
+ throw new RuntimeException("please specify appender first");
+ }
+ if (asyncAppender != null) {
+ asyncAppender.addAppender(appender);
+ return asyncAppender;
+ } else {
+ return appender;
+ }
+ }
+ }
+
+ public static class AsyncAppender extends Appender implements Appender.AppenderPipeline {
+
+ public static final int DEFAULT_BUFFER_SIZE = 128;
+
+ private final List<LoggingEvent> buffer = new ArrayList<>();
+
+ private final Map<String, DiscardSummary> discardMap = new HashMap<>();
+
+ private int bufferSize = DEFAULT_BUFFER_SIZE;
+
+ private final AppenderPipelineImpl appenderPipeline;
+
+ private final Thread dispatcher;
+
+ private boolean blocking = true;
+
+ public AsyncAppender() {
+ appenderPipeline = new AppenderPipelineImpl();
+
+ dispatcher = new Thread(new Dispatcher(this, buffer, discardMap, appenderPipeline));
+
+ dispatcher.setDaemon(true);
+
+ dispatcher.setName("AsyncAppender-Dispatcher-" + dispatcher.getName());
+ dispatcher.start();
+ }
+
+ public void addAppender(final Appender newAppender) {
+ synchronized (appenderPipeline) {
+ appenderPipeline.addAppender(newAppender);
+ }
+ }
+
+ public void append(final LoggingEvent event) {
+ if (dispatcher == null || !dispatcher.isAlive() || bufferSize <= 0) {
+ synchronized (appenderPipeline) {
+ appenderPipeline.appendLoopOnAppenders(event);
+ }
+
+ return;
+ }
+
+ event.getThreadName();
+ event.getRenderedMessage();
+
+ synchronized (buffer) {
+ while (true) {
+ int previousSize = buffer.size();
+
+ if (previousSize < bufferSize) {
+ buffer.add(event);
+
+ if (previousSize == 0) {
+ buffer.notifyAll();
+ }
+
+ break;
+ }
+
+ boolean discard = true;
+ if (blocking
+ && !Thread.interrupted()
+ && Thread.currentThread() != dispatcher) {
+ try {
+ buffer.wait();
+ discard = false;
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ }
+ }
+ if (discard) {
+ String loggerName = event.getLoggerName();
+ DiscardSummary summary = discardMap.get(loggerName);
+
+ if (summary == null) {
+ summary = new DiscardSummary(event);
+ discardMap.put(loggerName, summary);
+ } else {
+ summary.add(event);
+ }
+
+ break;
+ }
+ }
+ }
+ }
+
+ public void close() {
+
+ synchronized (buffer) {
+ closed = true;
+ buffer.notifyAll();
+ }
+
+ try {
+ dispatcher.join();
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ SysLogger.error(
+ "Got an InterruptedException while waiting for the "
+ + "dispatcher to finish.", e);
+ }
+
+ synchronized (appenderPipeline) {
+ Enumeration iter = appenderPipeline.getAllAppenders();
+ if (iter != null) {
+ while (iter.hasMoreElements()) {
+ Object next = iter.nextElement();
+ if (next instanceof Appender) {
+ ((Appender) next).close();
+ }
+ }
+ }
+ }
+ }
+
+ public Enumeration getAllAppenders() {
+ synchronized (appenderPipeline) {
+ return appenderPipeline.getAllAppenders();
+ }
+ }
+
+ public Appender getAppender(final String name) {
+ synchronized (appenderPipeline) {
+ return appenderPipeline.getAppender(name);
+ }
+ }
+
+ public boolean isAttached(final Appender appender) {
+ synchronized (appenderPipeline) {
+ return appenderPipeline.isAttached(appender);
+ }
+ }
+
+ public void removeAllAppenders() {
+ synchronized (appenderPipeline) {
+ appenderPipeline.removeAllAppenders();
+ }
+ }
+
+ public void removeAppender(final Appender appender) {
+ synchronized (appenderPipeline) {
+ appenderPipeline.removeAppender(appender);
+ }
+ }
+
+ public void removeAppender(final String name) {
+ synchronized (appenderPipeline) {
+ appenderPipeline.removeAppender(name);
+ }
+ }
+
+ public void setBufferSize(final int size) {
+ if (size < 0) {
+ throw new NegativeArraySizeException("size");
+ }
+
+ synchronized (buffer) {
+ bufferSize = (size < 1) ? 1 : size;
+ buffer.notifyAll();
+ }
+ }
+
+ public int getBufferSize() {
+ return bufferSize;
+ }
+
+ public void setBlocking(final boolean value) {
+ synchronized (buffer) {
+ blocking = value;
+ buffer.notifyAll();
+ }
+ }
+
+ public boolean getBlocking() {
+ return blocking;
+ }
+
+ private final class DiscardSummary {
+
+ private LoggingEvent maxEvent;
+
+ private int count;
+
+ public DiscardSummary(final LoggingEvent event) {
+ maxEvent = event;
+ count = 1;
+ }
+
+ public void add(final LoggingEvent event) {
+ if (event.getLevel().toInt() > maxEvent.getLevel().toInt()) {
+ maxEvent = event;
+ }
+ count++;
+ }
+
+ public LoggingEvent createEvent() {
+ String msg =
+ MessageFormat.format(
+ "Discarded {0} messages due to full event buffer including: {1}",
+ count, maxEvent.getMessage());
+
+ return new LoggingEvent(
+ "AsyncAppender.DONT_REPORT_LOCATION",
+ Logger.getLogger(maxEvent.getLoggerName()),
+ maxEvent.getLevel(),
+ msg,
+ null);
+ }
+ }
+
+ private class Dispatcher implements Runnable {
+
+ private final AsyncAppender parent;
+
+ private final List<LoggingEvent> buffer;
+
+ private final Map<String, DiscardSummary> discardMap;
+
+ private final AppenderPipelineImpl appenderPipeline;
+
+ public Dispatcher(
+ final AsyncAppender parent, final List<LoggingEvent> buffer, final Map<String, DiscardSummary> discardMap,
+ final AppenderPipelineImpl appenderPipeline) {
+
+ this.parent = parent;
+ this.buffer = buffer;
+ this.appenderPipeline = appenderPipeline;
+ this.discardMap = discardMap;
+ }
+
+ public void run() {
+ boolean isActive = true;
+
+ try {
+ while (isActive) {
+ LoggingEvent[] events = null;
+
+ synchronized (buffer) {
+ int bufferSize = buffer.size();
+ isActive = !parent.closed;
+
+ while (bufferSize == 0 && isActive) {
+ buffer.wait();
+ bufferSize = buffer.size();
+ isActive = !parent.closed;
+ }
+
+ if (bufferSize > 0) {
+ events = new LoggingEvent[bufferSize + discardMap.size()];
+ buffer.toArray(events);
+
+ int index = bufferSize;
+ Collection<DiscardSummary> values = discardMap.values();
+ for (DiscardSummary value : values) {
+ events[index++] = value.createEvent();
+ }
+
+ buffer.clear();
+ discardMap.clear();
+
+ buffer.notifyAll();
+ }
+ }
+ if (events != null) {
+ for (LoggingEvent event : events) {
+ synchronized (appenderPipeline) {
+ appenderPipeline.appendLoopOnAppenders(event);
+ }
+ }
+ }
+ }
+ } catch (InterruptedException ex) {
+ Thread.currentThread().interrupt();
+ }
+ }
+ }
+ }
+
+ private static class QuietWriter extends FilterWriter {
+
+ protected Appender appender;
+
+ public QuietWriter(Writer writer, Appender appender) {
+ super(writer);
+ this.appender = appender;
+ }
+
+ public void write(String string) {
+ if (string != null) {
+ try {
+ out.write(string);
+ } catch (Exception e) {
+ appender.handleError("Failed to write [" + string + "].", e,
+ Appender.CODE_WRITE_FAILURE);
+ }
+ }
+ }
+
+ public void flush() {
+ try {
+ out.flush();
+ } catch (Exception e) {
+ appender.handleError("Failed to flush writer,", e,
+ Appender.CODE_FLUSH_FAILURE);
+ }
+ }
+ }
+
+ public static class WriterAppender extends Appender {
+
+
+ protected boolean immediateFlush = true;
+
+ protected String encoding;
+
+
+ protected QuietWriter qw;
+
+ public WriterAppender() {
+
+ }
+
+ public void setImmediateFlush(boolean value) {
+ immediateFlush = value;
+ }
+
+
+ public boolean getImmediateFlush() {
+ return immediateFlush;
+ }
+
+ public void activateOptions() {
+ }
+
+
+ public void append(LoggingEvent event) {
+ if (!checkEntryConditions()) {
+ return;
+ }
+ subAppend(event);
+ }
+
+ protected boolean checkEntryConditions() {
+ if (this.closed) {
+ SysLogger.warn("Not allowed to write to a closed appender.");
+ return false;
+ }
+
+ if (this.qw == null) {
+ handleError("No output stream or file set for the appender named [" +
+ name + "].");
+ return false;
+ }
+
+ if (this.layout == null) {
+ handleError("No layout set for the appender named [" + name + "].");
+ return false;
+ }
+ return true;
+ }
+
+ public synchronized void close() {
+ if (this.closed) {
+ return;
+ }
+ this.closed = true;
+ writeFooter();
+ reset();
+ }
+
+ protected void closeWriter() {
+ if (qw != null) {
+ try {
+ qw.close();
+ } catch (IOException e) {
+ handleError("Could not close " + qw, e, CODE_CLOSE_FAILURE);
+ }
+ }
+ }
+
+ protected OutputStreamWriter createWriter(OutputStream os) {
+ OutputStreamWriter retval = null;
+
+ String enc = getEncoding();
+ if (enc != null) {
+ try {
+ retval = new OutputStreamWriter(os, enc);
+ } catch (IOException e) {
+ SysLogger.warn("Error initializing output writer.");
+ SysLogger.warn("Unsupported encoding?");
+ }
+ }
+ if (retval == null) {
+ retval = new OutputStreamWriter(os, StandardCharsets.UTF_8);
+ }
+ return retval;
+ }
+
+ public String getEncoding() {
+ return encoding;
+ }
+
+ public void setEncoding(String value) {
+ encoding = value;
+ }
+
+
+ public synchronized void setWriter(Writer writer) {
+ reset();
+ this.qw = new QuietWriter(writer, this);
+ writeHeader();
+ }
+
+ protected void subAppend(LoggingEvent event) {
+ this.qw.write(this.layout.format(event));
+
+ if (layout.ignoresThrowable()) {
+ String[] s = event.getThrowableStr();
+ if (s != null) {
+ for (String s1 : s) {
+ this.qw.write(s1);
+ this.qw.write(LINE_SEP);
+ }
+ }
+ }
+
+ if (shouldFlush(event)) {
+ this.qw.flush();
+ }
+ }
+
+ protected void reset() {
+ closeWriter();
+ this.qw = null;
+ }
+
+ protected void writeFooter() {
+ if (layout != null) {
+ String f = layout.getFooter();
+ if (f != null && this.qw != null) {
+ this.qw.write(f);
+ this.qw.flush();
+ }
+ }
+ }
+
+ protected void writeHeader() {
+ if (layout != null) {
+ String h = layout.getHeader();
+ if (h != null && this.qw != null) {
+ this.qw.write(h);
+ }
+ }
+ }
+
+ protected boolean shouldFlush(final LoggingEvent event) {
+ return event != null && immediateFlush;
+ }
+ }
+
+
+ public static class FileAppender extends WriterAppender {
+
+ protected boolean fileAppend = true;
+
+ protected String fileName = null;
+
+ protected boolean bufferedIO = false;
+
+ protected int bufferSize = 8 * 1024;
+
+ public FileAppender() {
+ }
+
+ public FileAppender(Layout layout, String filename, boolean append)
+ throws IOException {
+ this.layout = layout;
+ this.setFile(filename, append, false, bufferSize);
+ }
+
+ public void setFile(String file) {
+ fileName = file.trim();
+ }
+
+ public boolean getAppend() {
+ return fileAppend;
+ }
+
+ public String getFile() {
+ return fileName;
+ }
+
+ public void activateOptions() {
+ if (fileName != null) {
+ try {
+ setFile(fileName, fileAppend, bufferedIO, bufferSize);
+ } catch (IOException e) {
+ handleError("setFile(" + fileName + "," + fileAppend + ") call failed.",
+ e, CODE_FILE_OPEN_FAILURE);
+ }
+ } else {
+ SysLogger.warn("File option not set for appender [" + name + "].");
+ SysLogger.warn("Are you using FileAppender instead of ConsoleAppender?");
+ }
+ }
+
+ protected void closeFile() {
+ if (this.qw != null) {
+ try {
+ this.qw.close();
+ } catch (IOException e) {
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
+ SysLogger.error("Could not close " + qw, e);
+ }
+ }
+ }
+
+ public boolean getBufferedIO() {
+ return this.bufferedIO;
+ }
+
+ public int getBufferSize() {
+ return this.bufferSize;
+ }
+
+ public void setAppend(boolean flag) {
+ fileAppend = flag;
+ }
+
+ public void setBufferedIO(boolean bufferedIO) {
+ this.bufferedIO = bufferedIO;
+ if (bufferedIO) {
+ immediateFlush = false;
+ }
+ }
+
+ public void setBufferSize(int bufferSize) {
+ this.bufferSize = bufferSize;
+ }
+
+ public synchronized void setFile(String fileName, boolean append, boolean bufferedIO, int bufferSize)
+ throws IOException {
+ SysLogger.debug("setFile called: " + fileName + ", " + append);
+
+ if (bufferedIO) {
+ setImmediateFlush(false);
+ }
+
+ reset();
+ FileOutputStream ostream;
+ try {
+ ostream = new FileOutputStream(fileName, append);
+ } catch (FileNotFoundException ex) {
+ String parentName = new File(fileName).getParent();
+ if (parentName != null) {
+ File parentDir = new File(parentName);
+ if (!parentDir.exists() && parentDir.mkdirs()) {
+ ostream = new FileOutputStream(fileName, append);
+ } else {
+ throw ex;
+ }
+ } else {
+ throw ex;
+ }
+ }
+ Writer fw = createWriter(ostream);
+ if (bufferedIO) {
+ fw = new BufferedWriter(fw, bufferSize);
+ }
+ this.setQWForFiles(fw);
+ this.fileName = fileName;
+ this.fileAppend = append;
+ this.bufferedIO = bufferedIO;
+ this.bufferSize = bufferSize;
+ writeHeader();
+ SysLogger.debug("setFile ended");
+ }
+
+ protected void setQWForFiles(Writer writer) {
+ this.qw = new QuietWriter(writer, this);
+ }
+
+ protected void reset() {
+ closeFile();
+ this.fileName = null;
+ super.reset();
+ }
+ }
+
+
+ public static class RollingFileAppender extends FileAppender {
+
+ protected long maxFileSize = 10 * 1024 * 1024;
+
+ protected int maxBackupIndex = 1;
+
+ private long nextRollover = 0;
+
+ public RollingFileAppender() {
+ super();
+ }
+
+ public int getMaxBackupIndex() {
+ return maxBackupIndex;
+ }
+
+ public long getMaximumFileSize() {
+ return maxFileSize;
+ }
+
+ public void rollOver() {
+ File target;
+ File file;
+
+ if (qw != null) {
+ long size = ((CountingQuietWriter) qw).getCount();
+ SysLogger.debug("rolling over count=" + size);
+ nextRollover = size + maxFileSize;
+ }
+ SysLogger.debug("maxBackupIndex=" + maxBackupIndex);
+
+ boolean renameSucceeded = true;
+ if (maxBackupIndex > 0) {
+ file = new File(fileName + '.' + maxBackupIndex);
+ if (file.exists()) {
+ renameSucceeded = file.delete();
+ }
+
+ for (int i = maxBackupIndex - 1; i >= 1 && renameSucceeded; i--) {
+ file = new File(fileName + "." + i);
+ if (file.exists()) {
+ target = new File(fileName + '.' + (i + 1));
+ SysLogger.debug("Renaming file " + file + " to " + target);
+ renameSucceeded = file.renameTo(target);
+ }
+ }
+
+ if (renameSucceeded) {
+ target = new File(fileName + "." + 1);
+
+ this.closeFile(); // keep windows happy.
+
+ file = new File(fileName);
+ SysLogger.debug("Renaming file " + file + " to " + target);
+ renameSucceeded = file.renameTo(target);
+
+ if (!renameSucceeded) {
+ try {
+ this.setFile(fileName, true, bufferedIO, bufferSize);
+ } catch (IOException e) {
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
+ SysLogger.error("setFile(" + fileName + ", true) call failed.", e);
+ }
+ }
+ }
+ }
+
+ if (renameSucceeded) {
+ try {
+ this.setFile(fileName, false, bufferedIO, bufferSize);
+ nextRollover = 0;
+ } catch (IOException e) {
+ if (e instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
+ SysLogger.error("setFile(" + fileName + ", false) call failed.", e);
+ }
+ }
+ }
+
+ public synchronized void setFile(String fileName, boolean append, boolean bufferedIO, int bufferSize)
+ throws IOException {
+ super.setFile(fileName, append, this.bufferedIO, this.bufferSize);
+ if (append) {
+ File f = new File(fileName);
+ ((CountingQuietWriter) qw).setCount(f.length());
+ }
+ }
+
+ public void setMaxBackupIndex(int maxBackups) {
+ this.maxBackupIndex = maxBackups;
+ }
+
+ public void setMaximumFileSize(long maxFileSize) {
+ this.maxFileSize = maxFileSize;
+ }
+
+ protected void setQWForFiles(Writer writer) {
+ this.qw = new CountingQuietWriter(writer, this);
+ }
+
+ protected void subAppend(LoggingEvent event) {
+ super.subAppend(event);
+ if (fileName != null && qw != null) {
+ long size = ((CountingQuietWriter) qw).getCount();
+ if (size >= maxFileSize && size >= nextRollover) {
+ rollOver();
+ }
+ }
+ }
+
+ protected class CountingQuietWriter extends QuietWriter {
+
+ protected long count;
+
+ public CountingQuietWriter(Writer writer, Appender appender) {
+ super(writer, appender);
+ }
+
+ public void write(String string) {
+ try {
+ out.write(string);
+ count += string.length();
+ } catch (IOException e) {
+ appender.handleError("Write failure.", e, Appender.CODE_WRITE_FAILURE);
+ }
+ }
+
+ public long getCount() {
+ return count;
+ }
+
+ public void setCount(long count) {
+ this.count = count;
+ }
+
+ }
+ }
+
+
+ public static class DailyRollingFileAppender extends FileAppender {
+
+ static final int TOP_OF_TROUBLE = -1;
+ static final int TOP_OF_MINUTE = 0;
+ static final int TOP_OF_HOUR = 1;
+ static final int HALF_DAY = 2;
+ static final int TOP_OF_DAY = 3;
+ static final int TOP_OF_WEEK = 4;
+ static final int TOP_OF_MONTH = 5;
+
+
+ /**
+ * The date pattern. By default, the pattern is set to
+ * "'.'yyyy-MM-dd" meaning daily rollover.
+ */
+ private String datePattern = "'.'yyyy-MM-dd";
+
+ private String scheduledFilename;
+
+ private long nextCheck = System.currentTimeMillis() - 1;
+
+ Date now = new Date();
+
+ SimpleDateFormat sdf;
+
+ RollingCalendar rc = new RollingCalendar();
+
+ final TimeZone gmtTimeZone = TimeZone.getTimeZone("GMT");
+
+
+ public void setDatePattern(String pattern) {
+ datePattern = pattern;
+ }
+
+ public String getDatePattern() {
+ return datePattern;
+ }
+
+ public void activateOptions() {
+ super.activateOptions();
+ if (datePattern != null && fileName != null) {
+ now.setTime(System.currentTimeMillis());
+ sdf = new SimpleDateFormat(datePattern);
+ int type = computeCheckPeriod();
+ printPeriodicity(type);
+ rc.setType(type);
+ File file = new File(fileName);
+ scheduledFilename = fileName + sdf.format(new Date(file.lastModified()));
+
+ } else {
+ SysLogger.error("Either File or DatePattern options are not set for appender [" + name + "].");
+ }
+ }
+
+ void printPeriodicity(int type) {
+ switch (type) {
+ case TOP_OF_MINUTE:
+ SysLogger.debug("Appender [" + name + "] to be rolled every minute.");
+ break;
+ case TOP_OF_HOUR:
+ SysLogger.debug("Appender [" + name + "] to be rolled on top of every hour.");
+ break;
+ case HALF_DAY:
+ SysLogger.debug("Appender [" + name + "] to be rolled at midday and midnight.");
+ break;
+ case TOP_OF_DAY:
+ SysLogger.debug("Appender [" + name + "] to be rolled at midnight.");
+ break;
+ case TOP_OF_WEEK:
+ SysLogger.debug("Appender [" + name + "] to be rolled at start of week.");
+ break;
+ case TOP_OF_MONTH:
+ SysLogger.debug("Appender [" + name + "] to be rolled at start of every month.");
+ break;
+ default:
+ SysLogger.warn("Unknown periodicity for appender [" + name + "].");
+ }
+ }
+
+ int computeCheckPeriod() {
+ RollingCalendar rollingCalendar = new RollingCalendar(gmtTimeZone, Locale.getDefault());
+ // set sate to 1970-01-01 00:00:00 GMT
+ Date epoch = new Date(0);
+ if (datePattern != null) {
+ for (int i = TOP_OF_MINUTE; i <= TOP_OF_MONTH; i++) {
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat(datePattern);
+ simpleDateFormat.setTimeZone(gmtTimeZone);
+ String r0 = simpleDateFormat.format(epoch);
+ rollingCalendar.setType(i);
+ Date next = new Date(rollingCalendar.getNextCheckMillis(epoch));
+ String r1 = simpleDateFormat.format(next);
+ if (r0 != null && r1 != null && !r0.equals(r1)) {
+ return i;
+ }
+ }
+ }
+ return TOP_OF_TROUBLE;
+ }
+
+ void rollOver() throws IOException {
+
+ if (datePattern == null) {
+ handleError("Missing DatePattern option in rollOver().");
+ return;
+ }
+
+ String datedFilename = fileName + sdf.format(now);
+
+ if (scheduledFilename.equals(datedFilename)) {
+ return;
+ }
+ this.closeFile();
+
+ File target = new File(scheduledFilename);
+ if (target.exists() && !target.delete()) {
+ SysLogger.error("Failed to delete [" + scheduledFilename + "].");
+ }
+
+ File file = new File(fileName);
+ boolean result = file.renameTo(target);
+ if (result) {
+ SysLogger.debug(fileName + " -> " + scheduledFilename);
+ } else {
+ SysLogger.error("Failed to rename [" + fileName + "] to [" + scheduledFilename + "].");
+ }
+
+ try {
+ this.setFile(fileName, true, this.bufferedIO, this.bufferSize);
+ } catch (IOException e) {
+ handleError("setFile(" + fileName + ", true) call failed.");
+ }
+ scheduledFilename = datedFilename;
+ }
+
+ protected void subAppend(LoggingEvent event) {
+ long n = System.currentTimeMillis();
+ if (n >= nextCheck) {
+ now.setTime(n);
+ nextCheck = rc.getNextCheckMillis(now);
+ try {
+ rollOver();
+ } catch (IOException ioe) {
+ if (ioe instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
+ SysLogger.error("rollOver() failed.", ioe);
+ }
+ }
+ super.subAppend(event);
+ }
+ }
+
+ private static class RollingCalendar extends GregorianCalendar {
+ private static final long serialVersionUID = -3560331770601814177L;
+
+ int type = DailyRollingFileAppender.TOP_OF_TROUBLE;
+
+ RollingCalendar() {
+ super();
+ }
+
+ RollingCalendar(TimeZone tz, Locale locale) {
+ super(tz, locale);
+ }
+
+ void setType(int type) {
+ this.type = type;
+ }
+
+ public long getNextCheckMillis(Date now) {
+ return getNextCheckDate(now).getTime();
+ }
+
+ public Date getNextCheckDate(Date now) {
+ this.setTime(now);
+
+ switch (type) {
+ case DailyRollingFileAppender.TOP_OF_MINUTE:
+ this.set(Calendar.SECOND, 0);
+ this.set(Calendar.MILLISECOND, 0);
+ this.add(Calendar.MINUTE, 1);
+ break;
+ case DailyRollingFileAppender.TOP_OF_HOUR:
+ this.set(Calendar.MINUTE, 0);
+ this.set(Calendar.SECOND, 0);
+ this.set(Calendar.MILLISECOND, 0);
+ this.add(Calendar.HOUR_OF_DAY, 1);
+ break;
+ case DailyRollingFileAppender.HALF_DAY:
+ this.set(Calendar.MINUTE, 0);
+ this.set(Calendar.SECOND, 0);
+ this.set(Calendar.MILLISECOND, 0);
+ int hour = get(Calendar.HOUR_OF_DAY);
+ if (hour < 12) {
+ this.set(Calendar.HOUR_OF_DAY, 12);
+ } else {
+ this.set(Calendar.HOUR_OF_DAY, 0);
+ this.add(Calendar.DAY_OF_MONTH, 1);
+ }
+ break;
+ case DailyRollingFileAppender.TOP_OF_DAY:
+ this.set(Calendar.HOUR_OF_DAY, 0);
+ this.set(Calendar.MINUTE, 0);
+ this.set(Calendar.SECOND, 0);
+ this.set(Calendar.MILLISECOND, 0);
+ this.add(Calendar.DATE, 1);
+ break;
+ case DailyRollingFileAppender.TOP_OF_WEEK:
+ this.set(Calendar.DAY_OF_WEEK, getFirstDayOfWeek());
+ this.set(Calendar.HOUR_OF_DAY, 0);
+ this.set(Calendar.MINUTE, 0);
+ this.set(Calendar.SECOND, 0);
+ this.set(Calendar.MILLISECOND, 0);
+ this.add(Calendar.WEEK_OF_YEAR, 1);
+ break;
+ case DailyRollingFileAppender.TOP_OF_MONTH:
+ this.set(Calendar.DATE, 1);
+ this.set(Calendar.HOUR_OF_DAY, 0);
+ this.set(Calendar.MINUTE, 0);
+ this.set(Calendar.SECOND, 0);
+ this.set(Calendar.MILLISECOND, 0);
+ this.add(Calendar.MONTH, 1);
+ break;
+ default:
+ throw new IllegalStateException("Unknown periodicity type.");
+ }
+ return getTime();
+ }
+ }
+
+ public static class ConsoleAppender extends WriterAppender {
+
+ protected String target = SYSTEM_OUT;
+
+ public ConsoleAppender() {
+ }
+
+ public void setTarget(String value) {
+ String v = value.trim();
+
+ if (SYSTEM_OUT.equalsIgnoreCase(v)) {
+ target = SYSTEM_OUT;
+ } else if (SYSTEM_ERR.equalsIgnoreCase(v)) {
+ target = SYSTEM_ERR;
+ } else {
+ targetWarn(value);
+ }
+ }
+
+ public String getTarget() {
+ return target;
+ }
+
+ void targetWarn(String val) {
+ SysLogger.warn("[" + val + "] should be System.out or System.err.");
+ SysLogger.warn("Using previously set target, System.out by default.");
+ }
+
+ public void activateOptions() {
+ if (target.equals(SYSTEM_ERR)) {
+ setWriter(createWriter(System.err));
+ } else {
+ setWriter(createWriter(System.out));
+ }
+ super.activateOptions();
+ }
+
+ protected final void closeWriter() {
+
+ }
+ }
+
+ public static LayoutBuilder newLayoutBuilder() {
+ return new LayoutBuilder();
+ }
+
+ public static class LayoutBuilder {
+
+ private Layout layout;
+
+ public LayoutBuilder withSimpleLayout() {
+ layout = new SimpleLayout();
+ return this;
+ }
+
+ public LayoutBuilder withDefaultLayout() {
+ layout = new DefaultLayout();
+ return this;
+ }
+
+ public Layout build() {
+ if (layout == null) {
+ layout = new SimpleLayout();
+ }
+ return layout;
+ }
+ }
+
+ public static class SimpleLayout extends Layout {
+
+ @Override
+ public String format(LoggingEvent event) {
+
+ StringBuilder sb = new StringBuilder();
+ sb.append(event.getLevel().toString());
+ sb.append(" - ");
+ sb.append(event.getRenderedMessage());
+ sb.append("\r\n");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean ignoresThrowable() {
+ return false;
+ }
+ }
+
+
+ /**
+ * %d{yyy-MM-dd HH:mm:ss,SSS} %p %c{1}%L - %m%n
+ */
+ public static class DefaultLayout extends Layout {
+ @Override
+ public String format(LoggingEvent event) {
+
+ StringBuilder sb = new StringBuilder();
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS");
+ String format = simpleDateFormat.format(new Date(event.timeStamp));
+ sb.append(format);
+ sb.append(" ");
+ sb.append(event.getLevel());
+ sb.append(" ");
+ sb.append(event.getLoggerName());
+ sb.append(" - ");
+ sb.append(event.getRenderedMessage());
+ String[] throwableStr = event.getThrowableStr();
+ if (throwableStr != null) {
+ sb.append("\r\n");
+ for (String s : throwableStr) {
+ sb.append(s);
+ sb.append("\r\n");
+ }
+ }
+ sb.append("\r\n");
+ return sb.toString();
+ }
+
+ @Override
+ public boolean ignoresThrowable() {
+ return false;
+ }
+ }
+}
diff --git a/logging/src/main/java/org/apache/rocketmq/logging/inner/LoggingEvent.java b/logging/src/main/java/org/apache/rocketmq/logging/inner/LoggingEvent.java
new file mode 100644
index 000000000..06fa6aed9
--- /dev/null
+++ b/logging/src/main/java/org/apache/rocketmq/logging/inner/LoggingEvent.java
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rocketmq.logging.inner;
+
+import java.io.IOException;
+import java.io.InterruptedIOException;
+import java.io.LineNumberReader;
+import java.io.PrintWriter;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.ArrayList;
+
+public class LoggingEvent implements java.io.Serializable {
+
+ transient public final String fqnOfCategoryClass;
+
+ transient private Object message;
+
+ transient private Level level;
+
+ transient private Logger logger;
+
+ private String renderedMessage;
+
+ private String threadName;
+
+ public final long timeStamp;
+
+ private Throwable throwable;
+
+ public LoggingEvent(String fqnOfCategoryClass, Logger logger,
+ Level level, Object message, Throwable throwable) {
+ this.fqnOfCategoryClass = fqnOfCategoryClass;
+ this.message = message;
+ this.logger = logger;
+ this.throwable = throwable;
+ this.level = level;
+ timeStamp = System.currentTimeMillis();
+ }
+
+ public Object getMessage() {
+ if (message != null) {
+ return message;
+ } else {
+ return getRenderedMessage();
+ }
+ }
+
+ public String getRenderedMessage() {
+ if (renderedMessage == null && message != null) {
+ if (message instanceof String) {
+ renderedMessage = (String) message;
+ } else {
+ renderedMessage = message.toString();
+ }
+ if (renderedMessage != null) {
+ renderedMessage = renderedMessage.replace('\r', ' ').replace('\n', ' ');
+ }
+ }
+ return renderedMessage;
+ }
+
+ public String getThreadName() {
+ if (threadName == null) {
+ threadName = (Thread.currentThread()).getName();
+ }
+ return threadName;
+ }
+
+ public Level getLevel() {
+ return level;
+ }
+
+ public String getLoggerName() {
+ return logger.getName();
+ }
+
+ public String[] getThrowableStr() {
+ if (throwable == null) {
+ return null;
+ }
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ try {
+ throwable.printStackTrace(pw);
+ } catch (RuntimeException ex) {
+ SysLogger.warn("InnerLogger print stack trace error", ex);
+ }
+ pw.flush();
+ LineNumberReader reader = new LineNumberReader(
+ new StringReader(sw.toString()));
+ ArrayList<String> lines = new ArrayList<>();
+ try {
+ String line = reader.readLine();
+ while (line != null) {
+ lines.add(line);
+ line = reader.readLine();
+ }
+ } catch (IOException ex) {
+ if (ex instanceof InterruptedIOException) {
+ Thread.currentThread().interrupt();
+ }
+ lines.add(ex.toString());
+ }
+ String[] tempRep = new String[lines.size()];
+ lines.toArray(tempRep);
+ return tempRep;
+ }
+}
diff --git a/logging/src/main/java/org/apache/rocketmq/logging/inner/SysLogger.java b/logging/src/main/java/org/apache/rocketmq/logging/inner/SysLogger.java
new file mode 100755
index 000000000..b6d104977
--- /dev/null
+++ b/logging/src/main/java/org/apache/rocketmq/logging/inner/SysLogger.java
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rocketmq.logging.inner;
+
+public class SysLogger {
+
+ protected static boolean debugEnabled = false;
+
+ private static boolean quietMode = false;
+
+ private static final String PREFIX = "RocketMQLog: ";
+ private static final String ERR_PREFIX = "RocketMQLog:ERROR ";
+ private static final String WARN_PREFIX = "RocketMQLog:WARN ";
+
+ public static void setInternalDebugging(boolean enabled) {
+ debugEnabled = enabled;
+ }
+
+ public static void debug(String msg) {
+ if (debugEnabled && !quietMode) {
+ System.out.printf("%s", PREFIX + msg);
+ }
+ }
+
+ public static void debug(String msg, Throwable t) {
+ if (debugEnabled && !quietMode) {
+ System.out.printf("%s", PREFIX + msg);
+ if (t != null) {
+ t.printStackTrace(System.out);
+ }
+ }
+ }
+
+ public static void error(String msg) {
+ if (quietMode) {
+ return;
+ }
+ System.err.println(ERR_PREFIX + msg);
+ }
+
+ public static void error(String msg, Throwable t) {
+ if (quietMode) {
+ return;
+ }
+
+ System.err.println(ERR_PREFIX + msg);
+ if (t != null) {
+ t.printStackTrace();
+ }
+ }
+
+ public static void setQuietMode(boolean quietMode) {
+ SysLogger.quietMode = quietMode;
+ }
+
+ public static void warn(String msg) {
+ if (quietMode) {
+ return;
+ }
+
+ System.err.println(WARN_PREFIX + msg);
+ }
+
+ public static void warn(String msg, Throwable t) {
+ if (quietMode) {
+ return;
+ }
+
+ System.err.println(WARN_PREFIX + msg);
+ if (t != null) {
+ t.printStackTrace();
+ }
+ }
+}
diff --git a/common/src/main/java/org/apache/rocketmq/common/AbstractBrokerRunnable.java b/logging/src/main/java/org/apache/rocketmq/logging/package-info.java
similarity index 55%
copy from common/src/main/java/org/apache/rocketmq/common/AbstractBrokerRunnable.java
copy to logging/src/main/java/org/apache/rocketmq/logging/package-info.java
index 8bce59d76..7cb0645de 100644
--- a/common/src/main/java/org/apache/rocketmq/common/AbstractBrokerRunnable.java
+++ b/logging/src/main/java/org/apache/rocketmq/logging/package-info.java
@@ -15,26 +15,21 @@
* limitations under the License.
*/
-package org.apache.rocketmq.common;
+package org.apache.rocketmq.logging;
-public abstract class AbstractBrokerRunnable implements Runnable {
- protected final BrokerIdentity brokerIdentity;
-
- public AbstractBrokerRunnable(BrokerIdentity brokerIdentity) {
- this.brokerIdentity = brokerIdentity;
- }
-
- /**
- * real logic for running
- */
- public abstract void run2();
+/*
+ This package is a minimal logger on the basis of Apache Log4j without
+ file configuration and pattern layout configuration. Main forked files are
+ followed as below:
+ 1. LoggingEvent
+ 2. Logger
+ 3. Layout
+ 4. Level
+ 5. AsyncAppender
+ 6. FileAppender
+ 7. RollingFileAppender
+ 8. DailyRollingFileAppender
+ 9. ConsoleAppender
- @Override
- public void run() {
- if (brokerIdentity.isInBrokerContainer()) {
- // set threadlocal broker identity to forward logging to corresponding broker
-// InnerLoggerFactory.BROKER_IDENTITY.set(brokerIdentity.getCanonicalName());
- }
- run2();
- }
-}
+ For more information about Apache Log4j, please go to https://github.com/apache/log4j.
+ */
\ No newline at end of file
diff --git a/logging/src/test/java/org/apache/rocketmq/logging/BasicLoggerTest.java b/logging/src/test/java/org/apache/rocketmq/logging/BasicLoggerTest.java
new file mode 100644
index 000000000..c198704de
--- /dev/null
+++ b/logging/src/test/java/org/apache/rocketmq/logging/BasicLoggerTest.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rocketmq.logging;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import org.apache.rocketmq.logging.inner.Level;
+import org.apache.rocketmq.logging.inner.Logger;
+import org.apache.rocketmq.logging.inner.LoggingEvent;
+import org.junit.After;
+import org.junit.Before;
+
+public class BasicLoggerTest {
+
+ protected Logger logger = Logger.getLogger("test");
+
+ protected LoggingEvent loggingEvent;
+
+ protected String loggingDir = System.getProperty("user.home") + "/logs/rocketmq-test";
+
+ @Before
+ public void createLoggingEvent() {
+ loggingEvent = new LoggingEvent(Logger.class.getName(), logger, Level.INFO,
+ "junit test error", new RuntimeException("createLogging error"));
+ }
+
+ public String readFile(String file) throws IOException {
+ StringBuilder stringBuilder = new StringBuilder();
+ FileInputStream fileInputStream = new FileInputStream(file);
+ BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
+ String line = bufferedReader.readLine();
+ while (line != null) {
+ stringBuilder.append(line);
+ stringBuilder.append("\r\n");
+ line = bufferedReader.readLine();
+ }
+ bufferedReader.close();
+ return stringBuilder.toString();
+ }
+
+ @After
+ public void clean() {
+ File file = new File(loggingDir);
+ if (file.exists()) {
+ File[] files = file.listFiles();
+ for (File file1 : files) {
+ file1.delete();
+ }
+ }
+ }
+}
diff --git a/logging/src/test/java/org/apache/rocketmq/logging/InnerLoggerFactoryTest.java b/logging/src/test/java/org/apache/rocketmq/logging/InnerLoggerFactoryTest.java
new file mode 100644
index 000000000..2faaabcd6
--- /dev/null
+++ b/logging/src/test/java/org/apache/rocketmq/logging/InnerLoggerFactoryTest.java
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rocketmq.logging;
+
+import org.apache.rocketmq.logging.inner.Appender;
+import org.apache.rocketmq.logging.inner.Level;
+import org.apache.rocketmq.logging.inner.Logger;
+import org.apache.rocketmq.logging.inner.LoggingBuilder;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+
+public class InnerLoggerFactoryTest extends BasicLoggerTest {
+
+ private ByteArrayOutputStream byteArrayOutputStream;
+
+ public static final String LOGGER = "ConsoleLogger";
+
+ private PrintStream out;
+
+ @Before
+ public void initLogger() {
+ out = System.out;
+ byteArrayOutputStream = new ByteArrayOutputStream();
+ System.setOut(new PrintStream(byteArrayOutputStream));
+
+ Appender consoleAppender = LoggingBuilder.newAppenderBuilder()
+ .withConsoleAppender(LoggingBuilder.SYSTEM_OUT)
+ .withLayout(LoggingBuilder.newLayoutBuilder().withDefaultLayout().build()).build();
+
+ Logger consoleLogger = Logger.getLogger("ConsoleLogger");
+ consoleLogger.setAdditivity(false);
+ consoleLogger.addAppender(consoleAppender);
+ consoleLogger.setLevel(Level.INFO);
+ }
+
+ @After
+ public void fixConsole() {
+ System.setOut(out);
+ }
+
+ @Test
+ public void testInnerLoggerFactory() {
+ InternalLoggerFactory.setCurrentLoggerType(InternalLoggerFactory.LOGGER_INNER);
+
+ InternalLogger logger1 = InnerLoggerFactory.getLogger(LOGGER);
+ InternalLogger logger = InternalLoggerFactory.getLogger(LOGGER);
+
+ Assert.assertTrue(logger.getName().equals(logger1.getName()));
+
+ InternalLogger logger2 = InnerLoggerFactory.getLogger(InnerLoggerFactoryTest.class);
+ InnerLoggerFactory.InnerLogger logger3 = (InnerLoggerFactory.InnerLogger) logger2;
+
+ logger.info("innerLogger inner info Message");
+ logger.error("innerLogger inner error Message", new RuntimeException());
+ logger.debug("innerLogger inner debug message");
+ logger3.info("innerLogger info message");
+ logger3.error("logback error message");
+ logger3.info("info {}", "hahahah");
+ logger3.warn("warn {}", "hahahah");
+ logger3.warn("logger3 warn");
+ logger3.error("error {}", "hahahah");
+ logger3.debug("debug {}", "hahahah");
+
+ String content = new String(byteArrayOutputStream.toByteArray());
+
+ Assert.assertTrue(content.contains("InnerLoggerFactoryTest"));
+ Assert.assertTrue(content.contains("info"));
+ Assert.assertTrue(content.contains("RuntimeException"));
+ Assert.assertTrue(!content.contains("debug"));
+ }
+}
diff --git a/logging/src/test/java/org/apache/rocketmq/logging/InternalLoggerTest.java b/logging/src/test/java/org/apache/rocketmq/logging/InternalLoggerTest.java
new file mode 100644
index 000000000..50f1dd1c9
--- /dev/null
+++ b/logging/src/test/java/org/apache/rocketmq/logging/InternalLoggerTest.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rocketmq.logging;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import org.apache.rocketmq.logging.inner.Appender;
+import org.apache.rocketmq.logging.inner.Level;
+import org.apache.rocketmq.logging.inner.Logger;
+import org.apache.rocketmq.logging.inner.LoggingBuilder;
+import org.apache.rocketmq.logging.inner.SysLogger;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class InternalLoggerTest {
+
+ @Test
+ public void testInternalLogger() {
+ SysLogger.setQuietMode(false);
+ SysLogger.setInternalDebugging(true);
+ PrintStream out = System.out;
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ System.setOut(new PrintStream(byteArrayOutputStream));
+
... 7299 lines suppressed ...