parse_log/
parse_log.rs

1use std::env;
2
3use slog2_parse::{LogFile, PacketInfo};
4
5fn main() {
6    let log_file = LogFile::open(&env::args().nth(1).expect("Couldn't not get argument."))
7        .expect("Could not open file");
8
9    let log_info = log_file
10        .info()
11        .expect("Couldn't get information about the log");
12    println!("{:#?}", log_info);
13
14    println!("Buffers:");
15    for (index, buffer_info) in log_file.into_iter().enumerate() {
16        let buffer_info = buffer_info.expect("Couldn't get info about buffer {index}.");
17        println!("{:#?}", buffer_info);
18
19        log_file
20            .parse_static(index as i32, my_callback)
21            .expect("LogFile::parse_static() failed");
22    }
23}
24
25fn my_callback(info: PacketInfo) -> Result<(), i32> {
26    println!(
27        "Processing packet {} of size {}",
28        info.sequence_number(),
29        info.size()
30    );
31    println!("\t{:?}: {}", info.severity(), info.message().unwrap());
32    Ok(())
33}