Skip to content

Commit

Permalink
fix: add a flag to log source file and line number
Browse files Browse the repository at this point in the history
  • Loading branch information
laktek committed Jul 23, 2023
1 parent 1c0035b commit 4fd65a8
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 8 deletions.
2 changes: 1 addition & 1 deletion crates/base/src/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ impl Server {
if let Err(e) = conn_fut.await {
// Most common cause for these errors are when the client closes the connection before
// we could send a response
error!("client connection error: {:?}", e);
error!("client connection error ({:?})", e);
}
});
}
Expand Down
21 changes: 15 additions & 6 deletions crates/cli/src/logger.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,24 @@ struct CliLogger {
}

impl CliLogger {
fn new(log_level: log::Level) -> Self {
fn new(log_level: log::Level, include_source: bool) -> Self {
let logger = env_logger::Builder::from_env(
env_logger::Env::default().default_filter_or(log_level.to_level_filter().to_string()),
)
.format(|buf, record| {
.format(move |buf, record| {
let mut preamble = "".to_string();
if include_source {
preamble = format!(
"{}-{}: ",
record.file().unwrap_or("unknown"),
record.line().unwrap_or(0)
)
}

if record.level() == log::Level::Debug {
writeln!(buf, "{} {}", record.level(), record.args())
writeln!(buf, "{}{} {}", preamble, record.level(), record.args())
} else {
writeln!(buf, "{}", record.args())
writeln!(buf, "{}{}", preamble, record.args())
}
})
.build();
Expand Down Expand Up @@ -41,14 +50,14 @@ impl log::Log for CliLogger {
}
}

pub fn init(verbose: bool) {
pub fn init(verbose: bool, include_source: bool) {
let log_level = if verbose {
log::Level::Debug
} else {
log::Level::Info
};

let cli_logger = CliLogger::new(log_level);
let cli_logger = CliLogger::new(log_level, include_source);
let max_level = cli_logger.filter();
let r = log::set_boxed_logger(Box::new(cli_logger));
if r.is_ok() {
Expand Down
8 changes: 7 additions & 1 deletion crates/cli/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ fn cli() -> Command {
.global(true)
.action(ArgAction::SetTrue),
)
.arg(
arg!(--"log-source" "Include source file and line in log messages")
.global(true)
.action(ArgAction::SetTrue),
)
.subcommand(
Command::new("start")
.about("Start the server")
Expand Down Expand Up @@ -60,7 +65,8 @@ fn main() -> Result<(), anyhow::Error> {

if !matches.get_flag("quiet") {
let verbose = matches.get_flag("verbose");
logger::init(verbose);
let include_source = matches.get_flag("log-source");
logger::init(verbose, include_source);
}

#[allow(clippy::single_match)]
Expand Down

0 comments on commit 4fd65a8

Please sign in to comment.