iter_records_from_file

Function iter_records_from_file 

Source
pub fn iter_records_from_file<P>(
    path: P,
) -> Box<dyn Iterator<Item = Result<Sqllog, ParseError>>>
where P: AsRef<Path>,
Expand description

从文件读取并返回 Sqllog 迭代器(流式处理)

这是一个便捷函数,从文件读取日志并返回 SqllogIterator 迭代器。 使用迭代器可以避免一次性加载所有数据到内存,适合处理大文件。

§参数

  • path - 日志文件路径

§返回

  • Iterator<Item = Result<Sqllog, ParseError>> - 返回一个用于流式解析的迭代器,迭代项可能包含 ParseError,例如文件打开失败或解析错误

§示例

use dm_database_parser_sqllog::iter_records_from_file;

let parser = iter_records_from_file("sqllog.txt");

let mut sqllog_count = 0;
let mut error_count = 0;

for result in parser {
    match result {
        Ok(sqllog) => {
            sqllog_count += 1;
            println!("Sqllog {}: 用户={}, SQL={}",
                sqllog_count, sqllog.meta.username, sqllog.body);
        }
        Err(err) => {
            error_count += 1;
            eprintln!("错误 {}: {}", error_count, err);
        }
    }
}

println!("成功: {} 条, 错误: {} 个", sqllog_count, error_count);