Creating a custom logger
Sometimes you or your users might have very specific logging needs. In this recipe, we are going to learn how to create a custom logger to work with the log
crate.
How to do it...
Open the
Cargo.toml
file that was generated earlier for you.Under
[dependencies]
, if you didn't do so in the last recipe, add the following line:
log = "0.4.1"
If you want, you can go to log's crates.io page (https://crates.io/crates/log) to check for the newest version and use that one instead.
- In the folder
bin
, create a file calledcustom_logger.rs
. - Add the following code and run it with
RUST_LOG=custom_logger cargo run --bin custom_logger
if you're on a Unix-based system. Otherwise, run$env:RUST_LOG="custom_logger"; cargo run --bin custom_logger
on Windows:
1 #[macro_use] 2 extern crate log; 3 4 use log::{Level, Metadata, Record}; 5 use std::fs::{File, OpenOptions}; 6 use std::io::{self, BufWriter, Write}; 7 use std::{error, fmt, result}; 8 use std::sync::RwLock; 9 use std::time...