時間處理類外掛程式用於解析、提取、標準化日誌時間。
外掛程式效果樣本
表格展示該原始日誌在分別使用時間解析外掛程式(原生)與不使用外掛程式的情況下,儲存到Log Service後的資料結構。
原始日誌 | 不使用外掛程式 | 使用時間解析外掛程式(原生) |
秒級時間: | Content:"{"level":"INFO","timestamp":"2025-09-29T09:56:01+0800","cluster":"yilu-cluster-0728","message":"User logged in successfully","userId":"user-123"}" |
|
毫秒時間: | Content:"{"time":"2026-01-05T11:58:40,647Z", "filename":"out_data.py","levelname": "INFO", "threadName":"MainThread"}" |
|
納秒時間: | Content:"{"time": "2026-01-05T11:40:22,298837465Z07:00","filename":"out_data.py","levelname":"INFO","threadName": "MainThread"}" | |
時間處理類外掛程式概覽
Log Service提供以下多種類型的時間處理類外掛程式,請按需要進行選擇。
外掛程式名稱 | 類型 | 功能說明 |
時間解析 | 原生 | 解析並標準化日誌中的時間欄位。 |
提取日誌時間 | 拓展 | 解析原始時間欄位並可設為日誌時間戳記。 |
功能入口
當您需要使用Logtail外掛程式處理日誌時,您可以在建立或修改Logtail配置時,添加外掛程式。具體操作,請參見原生與拓展處理外掛程式使用說明。
原生外掛程式與拓展外掛程式的區別
原生外掛程式:C++實現,效能更強。
拓展外掛程式:Go實現,生態豐富且靈活,當業務日誌過於複雜,無法使用原生外掛程式處理時,可以考慮使用拓展外掛程式。
拓展外掛程式效能限制
日誌採集限制
拓展外掛程式對文本日誌的處理採用行模式,即檔案層級的中繼資料(例如
__tag__:__path__、__topic__等)會被存放到每一條日誌中。添加拓展外掛程式後會影響和Tag相關的功能:
時間解析外掛程式(原生)
時間解析外掛程式用於解析日誌的時間欄位,並將解析結果設定為日誌的__time__欄位。
配置說明
參數名稱 | 說明 |
原始欄位 | 解析日誌前,用於存放日誌內容的原始欄位,預設值為content。 說明 在使用正則解析外掛程式時,原始欄位僅支援設定為time,請確保您的正則解析配置中包含time作為提取欄位。 |
時間格式 | 根據日誌中的時間內容設定對應的時間格式。例如日誌中的時間為10/Sep/2023:12:36:49,對應的時間轉換格式為%d/%b/%Y:%H:%M:%S。 |
時區 | 選擇日誌時間欄位所在的時區。如果不選擇,則預設使用機器時區,即使用Logtail進程所在環境的時區。 |
預設情況下,Simple Log Service中的日誌時間戳記精確到秒,所以時間格式只需配置到秒,無需配置毫秒、微秒等資訊。如果原始日誌中的時間欄位包含毫秒、微秒或納秒級精度,且需在Log Service中保留該精度,請參考如下樣本開啟納秒精度,詳細資料請參見日誌採集支援納秒精度時間戳記。
原始日誌 | 時間解析外掛程式配置 | 時間格式 |
|
| %Y-%m-%dT%H:%M:%S,%f |
開啟納秒精度支援:
進入Logtail配置頁面,在,開啟進階參數開關,並輸入以下 JSON 內容以開啟納秒精度支援:
{
"EnableTimestampNanosecond": true
}在使用以下拓展外掛程式解析納秒或毫秒情境,也需要開啟該進階參數 EnableTimestampNanosecond。
提取日誌時間外掛程式(拓展)
使用processor_gotime外掛程式或processor_strptime外掛程式解析原始日誌中的時間欄位。此處介紹兩種外掛程式的參數說明和配置樣本。
如果原始日誌中的時間欄位包含毫秒、微秒或納秒級精度,且需在Log Service中保留該精度,請參見日誌採集支援納秒精度時間戳記。
Go語言時間格式(processor_gotime)
strptime時間格式(processor_strptime)
常見日誌時間格式
processor_gotime擴充外掛程式支援的常見日誌時間格式請參見https://pkg.go.dev/time#pkg-constants。processor_parse_timestamp_native 原生外掛程式與 processor_strptime 擴充外掛程式支援的常見日誌時間格式如下表所示:
在Linux伺服器中,Logtail支援strftime函數提供的所有時間格式。即能被strftime函數格式化的日誌時間字串都能被Logtail解析並使用。
時間格式 | 說明 | 樣本 |
%a | 星期的縮寫。 | Fri |
%A | 星期的全稱。 | Friday |
%b | 月份的縮寫。 | Jan |
%B | 月份的全稱。 | January |
%d | 每月第幾天,十進位,範圍為01~31。 | 07, 31 |
%f | 秒的小數部分(毫秒、微秒或納秒) | 123 |
%h | 月份的縮寫,等同於%b。 | Jan |
%H | 小時,24小時制。 | 22 |
%I | 小時,12小時制。 | 11 |
%m | 月份,十進位,範圍為01~12。 | 08 |
%M | 分鐘,十進位,範圍為00~59。 | 59 |
%n | 分行符號。 | 分行符號 |
%p | AM或PM。 | AM、PM |
%r | 12小時制的時間組合,等同於%I:%M:%S %p。 | 11:59:59 AM |
%R | 小時和分鐘組合,等同於%H:%M。 | 23:59 |
%S | 秒數,十進位,範圍為00~59。 | 59 |
%t | Tab符號,定位字元。 | 無 |
%y | 年份,十進位,不帶世紀,範圍為00~99。 | 04、98 |
%Y | 年份,十進位。 | 2004、1998 |
%C | 世紀,十進位,範圍為00~99。 | 16 |
%e | 每月第幾天,十進位,範圍為1~31。 如果是個位元字,前面需要加空格。 | 7、31 |
%j | 一年中的天數,十進位,範圍為001~366。 | 365 |
%u | 星期幾,十進位,範圍為1~7,1表示周一。 | 2 |
%U | 每年的第幾周,星期天是一周的開始,範圍為00~53。 | 23 |
%V | 每年的第幾周,星期一是一周的開始,範圍為01~53。 如果一月份剛開始的一周>=4天,則認為是第1周,否則認為下一個星期是第1周。 | 24 |
%w | 星期幾,十進位,範圍為0~6,0代表周日。 | 5 |
%W | 每年的第幾周,星期一是一周的開始,範圍為00~53。 | 23 |
%c | 標準的日期和時間。 | Tue Nov 20 14:12:58 2020 |
%x | 標準的日期,不帶時間。 | Tue Nov 20 2020 |
%X | 標準的時間,不帶日期。 | 11:59:59 |
%s | Unix時間戳記。 | 1476187251 |
樣本
常見的時間標準、樣本及對應的時間運算式如下所示。
樣本 | 時間運算式 | 時間標準 |
2017-12-11 15:05:07 | %Y-%m-%d %H:%M:%S | 自訂 |
[2017-12-11 15:05:07.012] | [%Y-%m-%d %H:%M:%S.%f | 自訂 |
2017-12-11 15:05:07.123 | %Y-%m-%d %H:%M:%S.%f | 自訂 |
02 Jan 06 15:04 MST | %d %b %y %H:%M | RFC822 |
02 Jan 06 15:04 -0700 | %d %b %y %H:%M | RFC822Z |
Monday, 02-Jan-06 15:04:05 MST | %A, %d-%b-%y %H:%M:%S | RFC850 |
Mon, 02 Jan 2006 15:04:05 MST | %A, %d %b %Y %H:%M:%S | RFC1123 |
2006-01-02T15:04:05Z07:00 | %Y-%m-%dT%H:%M:%S | RFC3339 |
2006-01-02T15:04:05.999999999Z07:00 | %Y-%m-%dT%H:%M:%S.%f | RFC3339Nano |
1637843406 | %s | 自訂 |
1637843406123 | %s | 自訂(Simple Log Service以秒級精度處理) |
相關文檔
通過API介面配置Logtail流水線:
通過控制台配置處理外掛程式:






