日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

如何采集多種格式的日志

采集日志時要求日志采用統一的格式,但有時日志中可能會包含多種格式,您可以采用Schema-On-WriteSchema-On-Read兩種模式處理。

背景信息

以Java日志為例,作為一個程序日志,它一般既包含正常信息,也會包含異常棧等錯誤信息。

  • WARNING類型的多行日志

  • INFO類型的簡單文本日志

  • DEBUG類型的鍵值日志

[2018-10-01T10:30:31,000] [WARNING] java.lang.Exception: another exception happened
    at TestPrintStackTrace.f(TestPrintStackTrace.java:3)
    at TestPrintStackTrace.g(TestPrintStackTrace.java:7)
    at TestPrintStackTrace.main(TestPrintStackTrace.java:16)
[2018-10-01T10:30:32,000] [INFO] info something
[2018-10-01T10:30:33,000] [DEBUG] key:value key2:value2

解決方案

  • Schema-On-Write

    • 使用場景:預先知道日志格式,在采集日志時完成格式化。

    • 說明:為同一份日志應用多個Logtail配置,每個Logtail配置具有不同的正則配置,從而能夠正確地實現字段提取。默認情況下,一個文件只能匹配一個Logtail配置,如果需要為同一份日志應用多個Logtail配置,請參見如何實現文件中的日志被采集多份

  • Schema-On-Read

    • 使用場景:同時分析的日志數量較小(例如千萬級),日志格式多變,在查詢和分析日志時完成格式化。

    • 說明:使用它們共同的正則表達式來采集。

      1. 例如采用多行日志采集,將時間和日志等級作為行首正則,剩余部分為message。例如提取[2018-10-01T10:30:32,000] [INFO]作為行首正則,message為info something

      2. 如果希望進一步分析message,可以為該字段創建索引,然后利用日志服務的正則提取函數從message字段提取需要的內容。