采集日志時要求日志采用統一的格式,但有時日志中可能會包含多種格式,您可以采用Schema-On-Write
和Schema-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
文檔內容是否對您有幫助?