關(guān)于rocketmq中日志文件路徑的配置指南
rocketmq 中的數(shù)據(jù)和日志文件默認(rèn)都是存儲(chǔ)在user.home路徑下面的,往往我們都需要修改這些路徑到指定文件夾以便管理。
服務(wù)端日志
網(wǎng)上搜索rocketmq日志存儲(chǔ)路徑的修改,一堆都是寫著要把源碼拉下來,用rocketmq_home全局替換user.home,然后再配置rocketmq_home變量。既然都是變量的替換,指定user.home的位置不就行了嗎?
rocketmq是java編寫的,也就是可以指定啟動(dòng)參數(shù),按照上面那個(gè)思路我們只要在rocketmq啟動(dòng)的時(shí)候指定啟動(dòng)參數(shù)就行了。
在conf文件夾下,可以看到有3個(gè)logback日志配置文件,這三個(gè)配置文件對(duì)應(yīng)的也是runbroker、namesrv、tools3個(gè)腳本。修的對(duì)應(yīng)腳本的啟動(dòng)參數(shù)即可。

由于namesrv不需要啟動(dòng)參數(shù),所以我們只要指定另外兩個(gè)加如下啟動(dòng)參數(shù)即可
set "JAVA_OPT=%JAVA_OPT% -Duser.home=D:\Soft\rocketmq"
修改完后重啟rocketmq就能看到指定路徑下有兩個(gè)文件夾,store文件夾是存儲(chǔ)數(shù)據(jù)的,logs文件夾是存儲(chǔ)日志的。

這樣服務(wù)端的日志和數(shù)據(jù)的配置就完成了。
客戶端配置
客戶端連接rocketmq會(huì)在用戶目錄產(chǎn)生一個(gè)rocketmq_client.log日志,如果需要是可以修改的,這里就拿rocketmq-dashboard項(xiàng)目舉例。
客戶端日志配置有兩種方式:
logUseSlf4j
如果項(xiàng)目中日志框架用的是logback的話可以使用這種方式,這種方式更靈活,可以自由配置日志格式
logUseSlf4j方式修改配置需要2步:
修改啟動(dòng)類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的日志存儲(chǔ)路徑
rocketmq:
client:
logPath: D:\Soft\rocketmq
修改logback.xml`文件
將logback.xml文件名修改為 logback-spring.xml,并修改xml里面的內(nèi)容,加入如下代碼:
<!--日志文件的存儲(chǔ)路徑-->
<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>
<!--保留時(shí)間,單位:天-->
<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
這種方式使用起來比較簡(jiǎn)單項(xiàng)目啟動(dòng)參數(shù)中加入如下啟動(dòng)參數(shù)即可
-Drocketmq.client.logRoot=D:\Soft\store
或者在項(xiàng)目中采用某種方式只要把rocketmq.client.logRoot參數(shù)放入到系統(tǒng)參數(shù)中就行,比如:
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);
}
這樣客戶端的日志就會(huì)在指定路徑下生成了。
總結(jié)
rocketmq 中不管是服務(wù)端還是客戶端的日志配置都是在類org.apache.rocketmq.client.log.ClientLogger中,通過ClientLogger可以發(fā)現(xiàn)rocketmq日志的參數(shù)都是加入到系統(tǒng)屬性中去的,所以我們只要修改對(duì)應(yīng)的系統(tǒng)屬性就可以修改rocketmq的日志配置了。感興趣的可以去看看源碼探索更多的可能。
到此這篇關(guān)于rocketmq中日志文件路徑的配置指南的文章就介紹到這了,更多相關(guān)rocketmq日志文件路徑配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java Set集合及其子類HashSet與LinkedHashSet詳解
這篇文章主要介紹了Java Set集合及其子類HashSet與LinkedHashSet詳解,文章通過Set集合存儲(chǔ)原理展開文章主題相關(guān)介紹,感興趣的小伙伴可以參考一下2022-06-06
Spring?Cloud集成Nacos?Config動(dòng)態(tài)刷新源碼剖析
這篇文章主要為大家介紹了Spring?Cloud集成Nacos?Config動(dòng)態(tài)刷新源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
聊聊spring boot的WebFluxTagsProvider的使用
這篇文章主要介紹了聊聊spring boot的WebFluxTagsProvider的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
關(guān)于springboot配置druid數(shù)據(jù)源不生效問題(踩坑記)
今天日常跟著網(wǎng)課學(xué)習(xí),學(xué)到了整合druid數(shù)據(jù)源,遇到了好幾個(gè)坑,希望這篇文章可以幫助一些和我一樣踩坑的人2021-09-09

