use std::{thread, time};
use log::{error, info, warn};
use log_full::{Builder, QuickwitConfig};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let quickwit_config =
QuickwitConfig::new("http://localhost:7280".to_string(), "log_full".to_string())
.with_timeout(30)
.with_batch_size(50);
Builder::new()
.level(log::LevelFilter::Info)
.use_console(true)
.log_file("logs/quickwit_example.log".to_string())
.log_file_max(10 * 1024 * 1024) .quickwit(quickwit_config)
.builder()?;
loop {
info!("这是一条信息日志,将被发送到 Quickwit");
warn!("这是一条警告日志,包含关键信息: user_id=12345");
error!("这是一条错误日志,错误代码: E001");
info!(
"用户登录成功: user={}, ip={}, timestamp={}",
"alice",
"192.168.1.100",
std::time::SystemTime::now()
.duration_since(std::time::UNIX_EPOCH)
.unwrap()
.as_secs()
);
println!("日志已记录并发送到 Quickwit(如果配置正确)");
println!("请检查 Quickwit 索引 'log_full' 中的日志条目");
log::logger().flush();
std::thread::sleep(std::time::Duration::from_millis(1000));
println!("所有日志处理完成");
thread::sleep(time::Duration::from_secs(3));
}
}