閱讀334 返回首頁    go 阿裏雲 go 技術社區[雲棲]


《LOG4J2官方文檔》Chainsaw 可以自動處理你的日誌文件(通知appender的配置)

對於所有的基於文件的appender和基於socket的appender,log4j提供通知appender 配置的詳細信息的功能。例如,基於文件的appender,文件地址和格式化輸出日誌信息都包含在了log4j的通知裏麵。Chainsaw和其他外部係統能發現這些通知並聰明地利用這些通知去處理日誌文件。

這種通知暴露的機製和通知格式是特定於每個通知者實現的,一個與特定通知者實現協作的外部係統必須明白,如何定位通知的配置和通知的格式。例如,一個數據庫通知者可能在數據庫表中存儲了配置的詳細信息,一個外部係統可以讀取這個數據庫表,發現文件位置和格式。

log4j提供了一種通知者實現——一個“multicastdns”通知者,運用https://jmdns.sourceforge.net的庫通過ip多路傳送,它可以通知appender的 配置的詳細信息。Chainsaw能發現log4j的多路局域網產生的通知者並且在Chainsaw的zeroconf標簽中顯示(jmdns庫要在Chainsaw的路徑中)。在Chainsaw的zeroconf標簽中雙擊通知入口,通知者就可以解析和跟蹤日誌文件了。現在Chainsaw隻支持FileAppender 的通知。

通知一個輸出appender配置,你需要如下步驟:
  • 你可以在 https://jmdns.sourceforge.net 網站上找到JmDns庫,把它加到應用路徑中
  • 在配置文件中設置advertise的配置屬性為”multicastdns”
  • 設置appender的advertise屬性為true
  • 如果通知FileAppender-based 的配置,要設置appender的屬性”advertiseURI”為一個合適的 URI

基於FileAppender的配置需要額外的指定在appender的 ‘advertiseURI’ 屬性。advertiseURI’ 屬性給Chainsaw提供了怎樣訪問文件的信息。例如,通過製定 的Commons VFS (https://commons.apache.org/proper/commons-vfs/) sftp:// URI 的ssh/sftp, 一個文件可能被chainsaw遠程訪問,當通過web服務器訪問文件時,一個https:// URI 可能會被用到,或者用本地運行的Chainsaw實例訪問一個文件時,製定一個 file:// URI 。

請注意,為了用”multicastdns”來通知,你必須在你的應用路徑加上Jmdns的庫(你可以在https://jmdns.sourceforge.net找到)

  1. <?xml version=“1.0” encoding=“UTF-8″?>
  2. <Configuration advertiser=“multicastdns”>
  3. </Configuration>
  4. <Appenders>
  5. <File name=“File1″ fileName=“output.log” bufferedIO=“false” advertiseURI=“file://path/to/output.log” advertise=“true”>
  6. </File>
  7. </Appenders>

最後更新:2017-05-19 10:31:13

  上一篇:go  日誌服務(原SLS) 2.5發布:支持SQL進行日誌實時分析
  下一篇:go  小規模的流處理框架.Part 2: RxJava 1.x/2.x