關(guān)于rocketmq中日志文件路徑的配置指南
rocketmq 中的數(shù)據(jù)和日志文件默認(rèn)都是存儲在user.home
路徑下面的,往往我們都需要修改這些路徑到指定文件夾以便管理。
服務(wù)端日志
網(wǎng)上搜索rocketmq日志存儲路徑的修改,一堆都是寫著要把源碼拉下來,用rocketmq_home全局替換user.home
,然后再配置rocketmq_home變量。既然都是變量的替換,指定user.home
的位置不就行了嗎?
rocketmq是java編寫的,也就是可以指定啟動參數(shù),按照上面那個思路我們只要在rocketmq啟動的時候指定啟動參數(shù)就行了。
在conf文件夾下,可以看到有3個logback日志配置文件,這三個配置文件對應(yīng)的也是runbroker
、namesrv
、tools
3個腳本。修的對應(yīng)腳本的啟動參數(shù)即可。
由于namesrv
不需要啟動參數(shù),所以我們只要指定另外兩個加如下啟動參數(shù)即可
set "JAVA_OPT=%JAVA_OPT% -Duser.home=D:\Soft\rocketmq"
修改完后重啟rocketmq就能看到指定路徑下有兩個文件夾,store文件夾是存儲數(shù)據(jù)的,logs文件夾是存儲日志的。
這樣服務(wù)端的日志和數(shù)據(jù)的配置就完成了。
客戶端配置
客戶端連接rocketmq會在用戶目錄產(chǎn)生一個rocketmq_client.log
日志,如果需要是可以修改的,這里就拿rocketmq-dashboard項(xiàng)目舉例。
客戶端日志配置有兩種方式:
logUseSlf4j
如果項(xiàng)目中日志框架用的是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里面的內(nèi)容,加入如下代碼:
<!--日志文件的存儲路徑--> <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
這種方式使用起來比較簡單項(xiàng)目啟動參數(shù)中加入如下啟動參數(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); }
這樣客戶端的日志就會在指定路徑下生成了。
總結(jié)
rocketmq 中不管是服務(wù)端還是客戶端的日志配置都是在類org.apache.rocketmq.client.log.ClientLogger
中,通過ClientLogger可以發(fā)現(xiàn)rocketmq日志的參數(shù)都是加入到系統(tǒng)屬性中去的,所以我們只要修改對應(yīng)的系統(tǒng)屬性就可以修改rocketmq的日志配置了。感興趣的可以去看看源碼探索更多的可能。
到此這篇關(guān)于rocketmq中日志文件路徑的配置指南的文章就介紹到這了,更多相關(guān)rocketmq日志文件路徑配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java Set集合及其子類HashSet與LinkedHashSet詳解
這篇文章主要介紹了Java Set集合及其子類HashSet與LinkedHashSet詳解,文章通過Set集合存儲原理展開文章主題相關(guān)介紹,感興趣的小伙伴可以參考一下2022-06-06Spring?Cloud集成Nacos?Config動態(tài)刷新源碼剖析
這篇文章主要為大家介紹了Spring?Cloud集成Nacos?Config動態(tài)刷新源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08聊聊spring boot的WebFluxTagsProvider的使用
這篇文章主要介紹了聊聊spring boot的WebFluxTagsProvider的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07關(guān)于springboot配置druid數(shù)據(jù)源不生效問題(踩坑記)
今天日常跟著網(wǎng)課學(xué)習(xí),學(xué)到了整合druid數(shù)據(jù)源,遇到了好幾個坑,希望這篇文章可以幫助一些和我一樣踩坑的人2021-09-09