pub fn is_record_start_line(line: &str) -> boolExpand description
判断一行日志是否为记录起始行
这是一个高性能的验证函数,用于快速判断一行文本是否为有效的日志记录起始行。
§判断标准
- 行首 23 字节符合时间戳格式
YYYY-MM-DD HH:mm:ss.SSS - 时间戳后紧跟一个空格,然后是 meta 部分
- Meta 部分用小括号包含
- Meta 部分必须包含所有必需字段(client_ip 可选)
- Meta 字段间以一个空格分隔
- Meta 字段顺序固定:ep → sess → thrd_id → username → trxid → statement → appname → client_ip(可选)
§参数
line- 要检查的行
§返回
如果是有效的记录起始行返回 true,否则返回 false
§示例
use dm_database_parser_sqllog::tools::is_record_start_line;
let valid = "2025-08-12 10:57:09.548 (EP[0] sess:123 thrd:456 user:alice trxid:789 stmt:999 appname:app) SELECT 1";
assert!(is_record_start_line(valid));
let invalid = "This is not a log line";
assert!(!is_record_start_line(invalid));- meta 部分结束后紧跟一个空格,然后是 body 部分。