use {
logroller::{Compression, LogRollerBuilder, Rotation, RotationAge},
std::io::Write,
};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut error_logger = LogRollerBuilder::new("./logs", "app.log")
.rotation(Rotation::AgeBased(RotationAge::Hourly))
.suffix("error".to_string()) .compression(Compression::Gzip) .max_keep_files(24) .build()?;
for error_code in &[500, 502, 503, 504] {
writeln!(
error_logger,
"Error {error_code}: Server encountered an internal error, please try again later",
)?;
writeln!(error_logger, "Stack trace for error {error_code}:")?;
writeln!(error_logger, " at processRequest (server.rs:42)")?;
writeln!(error_logger, " at handleConnection (network.rs:121)")?;
writeln!(error_logger, " at main (main.rs:15)")?;
writeln!(error_logger, "--------------------")?;
}
Ok(())
}