首页 > 其他分享 >关于rocketmq 中日志文件路径的配置

关于rocketmq 中日志文件路径的配置

时间:2022-11-05 14:01:17浏览次数:80  
标签:路径 修改 client home 日志 logback rocketmq


rocketmq 中的数据和日志文件默认都是存储在​​user.home​​路径下面的,往往我们都需要修改这些路径到指定文件夹以便管理。

服务端日志

网上搜索rocketmq日志存储路径的修改,一堆都是写着要把源码拉下来,用rocketmq_home全局替换​​user.home​​​,然后再配置rocketmq_home变量。既然都是变量的替换,指定​​user.home​​的位置不就行了吗?

rocketmq是java编写的,也就是可以指定启动参数,按照上面那个思路我们只要在rocketmq启动的时候指定启动参数就行了。

在conf文件夹下,可以看到有3个logback日志配置文件,这三个配置文件对应的也是​​runbroker​​​、​​namesrv​​​、​​tools​​3个脚本。修的对应脚本的启动参数即可。

关于rocketmq 中日志文件路径的配置_java-rocketmq


由于​​namesrv​​不需要启动参数,所以我们只要指定另外两个加如下启动参数即可

set "JAVA_OPT=%JAVA_OPT% -Duser.home=D:\Soft\rocketmq"

修改完后重启rocketmq就能看到指定路径下有两个文件夹,store文件夹是存储数据的,logs文件夹是存储日志的。

关于rocketmq 中日志文件路径的配置_rocketmq 日志路径_02


这样服务端的日志和数据的配置就完成了。

客户端配置

客户端连接rocketmq会在用户目录产生一个​​rocketmq_client.log​​日志,如果需要是可以修改的,这里就拿rocketmq-dashboard项目举例。

客户端日志配置有两种方式:

logUseSlf4j

如果项目中日志框架用的是logback的话可以使用这种方式,这种方式更灵活,可以自由配置日志格式

logUseSlf4j方式修改配置需要2步:

  1. 修改启动类main方法
public static void main(String[] args) {
System.setProperty(ClientLogger.CLIENT_LOG_USESLF4J,"true");
SpringApplication.run(App.class, args);
}
  1. 修改​​logback.xml​​​ 和 ​​application.yml​​ 配置文件
  • 在​​application.yml​​ 中加入如下rocketmq的日志存储路径
rocketmq:
client:
logPath: D:\Soft\rocketmq
  • 修改logback.xml`文件

将​​logback.xml​​​文件名修改为 ​​logback-spring.xml​​,并修改xml里面的内容,加入如下代码:

<!--日志文件的存储路径-->
<springProperty scope="context" name="rocketmq_client_log_dir" source="rocketmq.client.logPath"/>

<!-- rocketmq日志 -->
<appender name="RocketmqClientAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${rocketmq_client_log_dir}/logs/rocketmqlogs/rocketmq_client.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${rocketmq_client_log_dir}/history/rocketmq_client.%d{yyyyMMdd}.%i.log</fileNamePattern>

<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>104857600</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>

<!--保留时间,单位:天-->
<maxHistory>3</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n</pattern>
</encoder>
</appender>


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

配置logRoot

这种方式使用起来比较简单项目启动参数中加入如下启动参数即可

-Drocketmq.client.logRoot=D:\Soft\store

或者在项目中采用某种方式只要把​​rocketmq.client.logRoot​​参数放入到系统参数中就行,比如:

public static void main(String[] args) {
// -Drocketmq.client.logRoot=D:\Soft\store
System.setProperty(ClientLogger.CLIENT_LOG_ROOT,"D:\\Soft\\store");
SpringApplication.run(App.class, args);
}

这样客户端的日志就会在指定路径下生成了。

总结

rocketmq 中不管是服务端还是客户端的日志配置都是在类​​org.apache.rocketmq.client.log.ClientLogger​​中,通过ClientLogger可以发现rocketmq日志的参数都是加入到系统属性中去的,所以我们只要修改对应的系统属性就可以修改rocketmq的日志配置了。感兴趣的可以去看看源码探索更多的可能。



标签:路径,修改,client,home,日志,logback,rocketmq
From: https://blog.51cto.com/codersun/5825959

相关文章

  • linux 打包指定动态链接库路径的方法
    #当前路径$PWDecho"current_path:"$PWD#父级路径$(dirname$PWD)echo"parent_path:"$(dirname$PWD)#套娃即可$(dirname$(dirname$PWD))echo"parent_parent_path:"......
  • 【单片机/嵌入式】【梁山派】学习日志05:库函数点灯
    库函数点灯一、配置流程(1)开启GPIO的端口时钟(2)配置GPIO的模式(3)配置GPIO的输出对LED2接的PD7进行配置。在使用库函数之前,我们需要了解到,GD32官方帮我们做好了这一套库......
  • 《妲妹不要》——开发日志
    2022/11/04加上了字幕,调整了一下音效,终于可以导出了~纳西妲,冲!2022/11/03终于抽到纳西妲啦!超级可爱,非常满意~视频的话,还需要给添加一些音效和bgm就可以食用了。音效主......
  • 一文搞懂 SAE 日志采集架构
    简介: 本文将着重介绍了SAE提供了多种日志采集方案,以及相关的架构,场景使用特点,点击下文,立即查看吧~作者:牛通(奇卫) 日志,对于一个程序的重要程度不言而喻。无......
  • 在 k8s(kubernetes)中使用 Loki 进行日志监控
    安装helm环境[root@hello~/yaml]#[root@hello~/yaml]#curlhttps://baltocdn.com/helm/signing.asc|sudoapt-keyadd-[root@hello~/yaml]#sudoapt-getinstallap......
  • 关键路径法VS关键链法
     ......
  • Spring 日志文档翻译
    原文:http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#overview-logging2.3.2日志日志对于​​spring​​来说非常重要,因为 a)它是唯......
  • python操作日志
    importtimeimportosimportloggingcurrrent_path=os.path.dirname(__file__).rsplit("\\",1)[0]log_path=os.path.join(currrent_path,'../logs')classLo......
  • 【单片机/嵌入式】【梁山派】学习日志04:寄存器点灯
    一、寄存器点亮LED1.1配置流程一般我们使用GPIO的端口,都需要有以下几个步骤。(1)开启GPIO的端口时钟(2)配置GPIO的模式(3)配置GPIO的输出从LED介绍那一章节我们了解到LED1......
  • Rocksdb 日志分析工具 -- 性能和稳定性分析
    文章目录​​1.前言​​​​2.工具使用细节​​​​3.如何制作一个自己的python-package​​​​3.1项目配置文件​​​​3.1.1LICENSE文件​​​​3.2README.md文......