配置metaq擴充套件log4j傳送訊息的坑

2021-07-09 18:23:59 字數 1012 閱讀 2956

為什麼要配置log4j傳送訊息呢?主要是將現在系統的日誌都集中管理,而不是分散在各個系統中,對於分布式系統更是如此。但是始終測試不成功現在回想一下不成功,主要的原因就是對於每個元件不熟悉不理解其原理。

坑1:zookeeper沒有配置myid

啟動metaq也可以連上,但是客戶端通過zookeeper連線metaq不可以,一直就是連不上.

所以這一步,一定要正確的配置zookeeper,即是單機執行zookeeper也要配置myid。

坑2:metaq的正解啟動

在win7下啟動metaq之後,一定在驗證其是否正確的啟動,比如telnet 8123端品執行stats測試一下。

坑3:log4j的配置

官網所給的關於log4j.properties的配置

log4j.logger.testlog=info, testmessage

log4j.additivity.testmessage=false

**使用示例:

static final log log = logfactory.getlog("testlog");

log.info("just a test");

而一般情況下,所使用的**為

static final log log=logfactory.getlog(test.class);

的形式,如果使用metaq來將系統異常日誌作為訊息傳送出去,

那麼需要重構的**則太多了。其實我們只需要更改log4j的配置就可以了,我測試成功的log4j配置。

log4j.rootlogger=debug,console

log4j.logger.com.j1=info,testmessage

log4j.additivity.testmessage=false

還要一點就是不能將testmessage放在rootlogger上,因為這樣**會報stack異常,但是我沒有搞清楚原因。即進行如何配置不可以:

log4j.rootlogger=debug,console,testmessage

log4j日誌系統 Log4j

1.1 log4j的三大核心元件 1.2 loggers 記錄器 1.4 layouts 布局 org.apache.log4j.htmllayout 以html 形式布局 org.apache.log4j.patternlayout 可以靈活地指定布局模式 org.apache.log4j.lay...

常用log4j配置

常用log4j配置,一般可以採用兩種方式,properties和.xml,下面舉兩個簡單的例子 一 log4j.properties 設定org.zblog域對應的級別info,debug,warn,error和輸出地a1,a2 log4j.category.org.zblog error,a1 l...

常用log4j配置

常用log4j配置,一般可以採用兩種方式,properties和.xml,下面舉兩個簡單的例子 一 log4j.properties 設定.zblog域對應的級別info,debug,warn,error和輸出地a1,a2 log4j.category.zblog error,a1 log4j.ca...