解决rocketmq-client日志保存路径的问题

rocketmq-client日志保存路径

由于使用rocketmq-client会生成一个rocketmq_client.log日志文件,一般默认存于系统盘内,且持续增长速度较快,为便于清理且避免影响操作系统资源使用,建议手动设置其日志存储路径为当前程序运行目录下的logs文件夹。

参考操作方式:

系统启动时代码显式设置全局变量“rocketmq.client.logRoot”,

示例:

System.setProperty("rocketmq.client.logRoot","logs/");

Springboot项目可在启动类的main方法中设置,已验证有效。

参考示例:

 public static void main(String[] args) throws Throwable {
    System.setProperty("rocketmq.client.logRoot","logs/");
    SpringApplication.run(Application.class, args);
 }

关于rocketmq-client日志路径及其他配置详情,可见源码com.alibaba.rocketmq.client.log.ClientLogger中相关代码及其日志配置文件log4j_rocketmq_client.xml或logback_rocketmq_client.xml,

见下图:

rocketmq-client 日志问题处理

使用rocketmq后,默认会在{user.home}\logs\rocketmqlogs 目录下生成大量的mq跟踪日志,可以通过以下方式禁用或改变存储目录

方式一: rocketmq启用slf4j【推荐】

#设置系统属性

rocketmq.client.logUseSlf4j=true

启动参数 添加:

 -Drocketmq.client.logUseSlf4j=true 【推荐】 

或者启动类添加:

System.setProperty("rocketmq.client.logUseSlf4j","true") 

#logback日志配置

#Rocketmq apppender配置

<appender name="RocketmqClientAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.base}/rocketmq.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.base}/%d{yyyy-MM-dd}/rocketmq-%i.%d{yyyy-MM-dd}.log.gz
</fileNamePattern>
<TimeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<MaxFileSize>30MB</MaxFileSize>
</TimeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>${pattern}</pattern>
</encoder>
</appender>

#Rocketmq logger配置

<logger name="RocketmqClient" additivity="false">
<level value="warn" />
<appender-ref ref="RocketmqClientAppender"/>
</logger>

方式二: 更改默认rocketmq路劲和级别

#设置系统属性

rocketmq.client.logRoot={日终路径}
rocketmq.client.logLevel={日志等级}

建议启动参数添加:

-Drocketmq.client.logRoot=/opt/appl/tomcat/logs/{应用名} -Drocketmq.client.logLevel=warn

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • RocketMQ存储文件的实现

    RocketMQ存储路径默认是${ROCKRTMQ_HOME}/store,主要存储消息.主题对应的消息队列的索引等. 1.概述 查看其目录文件 commitlog:消息的存储目录 config:运行期间一些配置信息 consumequeue:消息消费队列存储目录 index:消息索引文件存储目录 abort:如果存在abort文件说明Broker非正常关闭,该文件默认启动时创建,正常退出时删除 checkpoint:文件检测点.存储commitlog文件最后一次刷盘时间戳.consumeque

  • 解决SpringBoot整合RocketMQ遇到的坑

    应用场景 在实现RocketMQ消费时,一般会用到@RocketMQMessageListener注解定义Group.Topic以及selectorExpression(数据过滤.选择的规则)为了能支持动态筛选数据,一般都会使用表达式,然后通过apollo或者cloud config进行动态切换. 引入依赖 <!-- RocketMq Spring Boot Starter--> <dependency> <groupId>org.apache.rocketmq<

  • RocketMQ-延迟消息的处理流程介绍

    概述 RocketMQ 支持发送延迟消息,但不支持任意时间的延迟消息的设置,仅支持内置预设值的延迟时间间隔的延迟消息: 预设值的延迟时间间隔为: 1s. 5s. 10s. 30s. 1m. 2m. 3m. 4m. 5m. 6m. 7m. 8m. 9m. 10m. 20m. 30m. 1h. 2h: 在消息创建的时候,调用 setDelayTimeLevel(int level) 方法设置延迟时间: broker在接收到延迟消息的时候会把对应延迟级别的消息先存储到对应的延迟队列中,等延迟消息时间到

  • RocketMQ消息过滤与查询的实现

    消息过滤 RocketMQ分布式消息队列的消息过滤方式有别于其它MQ中间件,是在Consumer端订阅消息时再做消息过滤的. RocketMQ这么做是还是在于其Producer端写入消息和Consomer端订阅消息采用分离存储的机制来实现的,Consumer端订阅消息是需要通过ConsumeQueue这个消息消费的逻辑队列拿到一个索引,然后再从CommitLog里面读取真正的消息实体内容,所以说到底也是还绕不开其存储结构. 其ConsumeQueue的存储结构如下,可以看到其中有8个字节存储的M

  • RocketMQTemplate 注入失败的解决

    RocketMQTemplate 注入失败 在使用rocketmq 发送消息时,会发现 @Autowired private RocketMQTemplate rocketMQTemplate; 注入RocketMQTemplate 失败. 解决方案 究其原因是因为,配置文件中,我们没有添加 上图中蓝色的两行代码,指定发送的组名.写上后,问题解决. 好了,再来说说RocketMQTemplate 的基本使用吧~ RocketMQTemplate的使用 1.pom.xml依赖 <dependenc

  • 基于RocketMQ推拉模式详解

    消费者客户端有两种方式从消息中间件获取消息并消费.严格意义上来讲,RocketMQ并没有实现PUSH模式,而是对拉模式进行一层包装,名字虽然是 Push 开头,实际在实现时,使用 Pull 方式实现. 通过 Pull 不断轮询 Broker 获取消息.当不存在新消息时,Broker 会挂起请求,直到有新消息产生,取消挂起,返回新消息. 1.概述 1.1.PULL方式 由消费者客户端主动向消息中间件(MQ消息服务器代理)拉取消息:采用Pull方式,如何设置Pull消息的拉取频率需要重点去考虑,举个

  • RocketMQ 延时级别配置方式

    RocketMQ 支持定时消息,但是不支持任意时间精度,仅支持特定的 level,例如定时 5s, 10s, 1m 等. 其中,level=0 级表示不延时,level=1 表示 1 级延时,level=2 表示 2 级延时,以此类推. 如何配置: 在服务器端(rocketmq-broker端)的属性配置文件中加入以下行: messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h 描述了各级别与延时时

  • 使用RocketMQTemplate发送带tags的消息

    RocketMQTemplate发送带tags的消息 RocketMQTemplate是RocketMQ集成到Spring cloud之后提供的个方便发送消息的模板类,它是基本Spring 的消息机制实现的,对外只提供了Spring抽象出来的消息发送接口. 在单独使用RocketMQ的时候,发送消息使用的Message是'org.apache.rocketmq.common.message'包下面的Message,而使用RocketMQTemplate发送消息时,使用的Message是org.s

  • rocketmq如何修改存储路径

    一.下载rocketmq对应版本源码 修改消息存储路径需要修改rocketmq源码,因为rocketmq取的默认路径是user.home路径,也就是用户的根目录,如下所示 直接修改用户的user.home比较麻烦,我们打算直接修改源码里写死的路径,然后重新打包 下载rocketmq源码可以去GitHub,路径为https://github.com/apache/rocketmq 如果要下4.7.1版本的源码包可以选择对应release包 例如使用的rocketmq版本为4.7.1,则下载路径为h

  • rocketmq client 日志的问题处理方式

    目录 rocketmq client 日志的问题处理 方式一: rocketmq启用slf4j[推荐] 方式二: 更改默认rocketmq路劲和级别 RocketMQ 自己加载日志,以及特性 rocketmq client 日志的问题处理 使用rocketmq后,默认会在{user.home}\logs\rocketmqlogs 目录下生成大量的mq跟踪日志,可以通过以下方式禁用或改变存储目录 方式一: rocketmq启用slf4j[推荐] #设置系统属性 rocketmq.client.lo

  • 解决rocketmq-client日志保存路径的问题

    rocketmq-client日志保存路径 由于使用rocketmq-client会生成一个rocketmq_client.log日志文件,一般默认存于系统盘内,且持续增长速度较快,为便于清理且避免影响操作系统资源使用,建议手动设置其日志存储路径为当前程序运行目录下的logs文件夹. 参考操作方式: 系统启动时代码显式设置全局变量"rocketmq.client.logRoot", 示例: System.setProperty("rocketmq.client.logRoot

  • RocketMQ4.5.X 实现修改生产者消费者日志保存路径

    RocketMQ修改生产者消费者日志保存路径 rocket默认是将所有日志文件保存到user.home的对于win系统就是C盘了. 1.修改RocketMQ中CLientLogger.class的源码,把经过更改的源码重新打包后,去自己的maven仓库替换rocketmq-client.-4.5.X.jar. 2.对于生产者的启动类里需要配置JVM系统属性: 如果不设置logUserSlf4j为true的话,启动生产者的时候会报找不到日志配置文件的警告. 3.对于消费者,仅仅添加rq.lordi

  • 解决db2事务日志已满及日志磁盘空间已满问题办法详解

    事务日志满指当前事务无法写入到活动日志中(主日志文件和辅助日志文件已全部用完或者没有足够当前事务写入的空间) 日志磁盘空间已满指辅助日志文件还未使用完,磁盘空间已经满了. db2数据库事务日志文件分为主日志文件和辅助日志文件,主日志文件已分配空间,辅助日志文件使用时再分配. 查看事务日志配置(mid为数据库名称): db2 get db cfg for mid 运行结果: 日志文件大小(4KB)                         (LOGFILSIZ) = 1024 主日志文件的数

  • 解决laravel中日志权限莫名变成了root的问题

    框架用的是laravel, 其中把一些数据写入日志, 保存到storage目录中, 刚开始查看正常, 再过一段时间文件权限就自动变成了root权限了, 导致只有www权限的laravel不能写入日志中 定时任务抓取图片的时候存储不了报权限错误 //=================== 解决方法如下: linux可以指定crontab的用户, 平常crontab -e添加的任务都是在root用户的定时任务下, 如果要用nobody用户执行, 需要使用 crontab -u nobody -l 然

  • 解决Android Studio日志太长或滚动太快问题

    前言 安卓开发经常遇到那种日志太长或滚动得太快, 我们直接的解决办法就是进行日志输出长度增大和添加日志过滤器,个人推荐用adb logcat处理更加方便灵活. 解决办法 1. 搜索过滤器 2. 修改日志缓冲大小 找到 " Android Studio安装目录\bin\idea.properties" 文件中的 idea.cycle.buffer.size=1024 修改成你要的缓冲大小即可. 3. adb logcat 输出日志到指定文件(不能解决日志过长的问题) i. 配置adb环境

  • 解决SpringBoot log4j日志没生成的问题

    SpringBoot log4j日志没生成 从同事那接了一个脚手架,启动后发现日志文件没生成. 都知道SpringBoot默认带的logback,如果要用log4j需要把logback的依赖去掉. 看了下工程的pom.xml文件,确实是有加去掉spring-boot-starter-logging的声明. <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <arti

  • 解决logback的日志文件路径问题

    假如使用绝对路径,没有任何问题,就是移植性不太好. 假如使用相对路径,则要注意当前路径"."是在哪儿? 一般我们都会在配置文件中加入log文件的存储目录,如 本人通过研究测试发现: 1.对于J2SE项目,当前路径为工程所在目录 如我的工程为:D:\test 则使用-/logs生成的日志文件位于:D:\logs 2.对于J2EE项目,当前路径为tomcat\bin所在目录 如我的tomcat路径为:D:\tomcat\bin 则使用-/logs生成的日志文件位于:D:\tomcat\lo

  • docker安装rocketMQ和安装过程中出现问题的解决

    目录 拉取rocketmq镜像 创建namesrv 创建单个broker节点 rocketMQ-console服务 本文主要介绍安装rocketMQ4.4.0,主要分为四步,分别为: 1.拉取rocketmq镜像. 2.创建namesrv. 3.创建broker节点,我在这里介绍的是创建单个broker的. 4.rocketMQ-console服务,用于管理rocketMQ的管理界面. 拉取rocketmq镜像 docker命令如下 docker pull rocketmqinc/rocketm

  • SQL数据库日志已满解决方法

    当前的解决方法是:把硬盘上的其他文件删除,以空出硬盘空间,将数据库的日志文件大小改成无限制,然后分离数据库,要确保分离成功,.然后把数据库日志文件删除(最好是先改名,以防万一).再附加数据库,这样会重建日志文件. 加回去之后,将数据库改成自动收缩,把日志文件改成按mb增长,增长最大设为一个固定的值,值的大小看数据处理情况,存在大指的update操作的话,应设为大一点. 在查询分析器上操作: 清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 截断事务日志: BACKUP L

随机推荐