RocketMq客户端日志参数设置

使用的RocketMq版本为4.7.1
RocketMq的客户端日志打印,Logger的创建代码在org.apache.rocketmq.client.log.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";
 
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 clientLogLevel = System.getProperty(CLIENT_LOG_LEVEL, "INFO");
boolean additive = "true".equalsIgnoreCase(System.getProperty(CLIENT_LOG_ADDITIVE));

通过在JVM启动参数中添加-Dparam=xxx或者代码启动类中调用System.setProperty(“param”, xxx)即可达到参数设置效果

参数释义:

rocketmq.client.logUseSlf4j:默认为false,如果这个设置为true,那下面其他的日志参数都无效了。因为会使用slf4j来创建日志对象实例(LOGGER_NAME=RocketmqClient),可以认为和应用程序使用同样的日志配置
rocketmq.client.logRoot:日志根目录,默认是$USER_HOME/Logs/rocketmqLogs
rocketmq.client.logFileMaxIndex:最大保留的日志文件数量,默认10
rocketmq.client.logFileMaxSize:日志文件最大大小限制,默认1G
rocketmq.client.logLevel:日志等级,默认INFO
rocketmq.client.log.additive:类似log4j的additive设置,表示子logger是否继承父logger的所有appenders,默认false。在这里没有什么意义
rocketmq.client.logFileName:日志文件名,默认是rocketmq_client.log
rocketmq.client.logAsyncQueueSize:异步缓冲队列大小,默认1024
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RocketMQ 官方提供了 Java、C++、Python、Go 等多种语言的客户端,但是并没有官方的 Node.js 客户端。不过,有第三方开发者基于 RocketMQ C++ 客户端 SDK 开发了 Node.js 的 RocketMQ 客户端,名为 `rocketmq-nodejs-client`。 `rocketmq-nodejs-client` 提供了 RocketMQ 生产者和消费者两种模式的 API,可以用于在 Node.js 应用中进行消息的发送和接收。使用该客户端需要在安装 Node.js 环境后,通过 npm 安装 `rocketmq-nodejs-client` 模块,并在项目中引入使用。 以下是一个使用 `rocketmq-nodejs-client` 的示例代码: ```javascript const rocketmq = require('rocketmq-nodejs-client'); // 创建生产者实例 const producer = new rocketmq.Producer({ accessKey: '<accessKey>', secretKey: '<secretKey>', endpoint: '<endpoint>', instanceId: '<instanceId>' }); // 启动生产者实例 producer.start(); // 发送消息 producer.send({ topic: 'test-topic', tag: 'test-tag', key: 'test-key', body: 'test-message' }, (err, res) => { if (err) { console.error(err); } else { console.log(res); } }); // 创建消费者实例 const consumer = new rocketmq.PushConsumer({ accessKey: '<accessKey>', secretKey: '<secretKey>', endpoint: '<endpoint>', instanceId: '<instanceId>', consumerGroup: 'test-group' }); // 订阅消息 consumer.subscribe('test-topic', '*', (msg) => { console.log(msg); }); // 启动消费者实例 consumer.start(); ``` 需要注意的是,`rocketmq-nodejs-client` 目前仍处于开发阶段,还未正式发布 1.0 版本,因此在使用时需要谨慎考虑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值