这篇文章主要讲解了“rocketmq中日志文件路径怎么配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“rocketmq中日志文件路径怎么配置”吧!
rocketmq 中的数据和日志文件默认都是存储在user.home
路径下面的,往往我们都需要修改这些路径到指定文件夹以便管理。
服务端日志
网上搜索rocketmq日志存储路径的修改,一堆都是写着要把源码拉下来,用rocketmq_home全局替换user.home
,然后再配置rocketmq_home变量。既然都是变量的替换,指定user.home
的位置不就行了吗?
rocketmq是java编写的,也就是可以指定启动参数,按照上面那个思路我们只要在rocketmq启动的时候指定启动参数就行了。
在conf文件夹下,可以看到有3个logback日志配置文件,这三个配置文件对应的也是runbroker
、namesrv
、tools
3个脚本。修的对应脚本的启动参数即可。
由于namesrv
不需要启动参数,所以我们只要指定另外两个加如下启动参数即可
set "JAVA_OPT=%JAVA_OPT% -Duser.home=D:\Soft\rocketmq"
修改完后重启rocketmq就能看到指定路径下有两个文件夹,store文件夹是存储数据的,logs文件夹是存储日志的。
这样服务端的日志和数据的配置就完成了。
客户端配置
客户端连接rocketmq会在用户目录产生一个rocketmq_client.log
日志,如果需要是可以修改的,这里就拿rocketmq-dashboard项目举例。
客户端日志配置有两种方式:
logUseSlf4j
如果项目中日志框架用的是logback的话可以使用这种方式,这种方式更灵活,可以自由配置日志格式
logUseSlf4j方式修改配置需要2步:
修改启动类main方法
public static void main(String[] args) { System.setProperty(ClientLogger.CLIENT_LOG_USESLF4J,"true"); SpringApplication.run(App.class, args);}
修改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中日志文件路径怎么配置”的内容了,经过本文的学习后,相信大家对rocketmq中日志文件路径怎么配置这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!