Skip to content

Commit

Permalink
fix: verbosity
Browse files Browse the repository at this point in the history
  • Loading branch information
ErrorNoInternet committed Jan 29, 2024
1 parent 41593af commit f443494
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 37 deletions.
16 changes: 3 additions & 13 deletions src/core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,11 @@ use std::str::FromStr;
use tracing::{debug, info, trace, warn};

pub fn main(arguments: &Arguments) {
trace!("getting configuration options...");
let (is_default, options) = get_options(arguments);

let binding = options.clone();
match tracing_appender::rolling::Builder::new()
.filename_prefix(binding.logger.prefix)
.filename_suffix(binding.logger.suffix)
.rotation(options.logger.rotation.clone().into())
.max_log_files(options.logger.max_log_files)
.build(binding.logger.directory)
{
Ok(file_appender) => logging::set_up_logging(file_appender),
Err(error) => {
eprintln!("unable to set up rolling logger: {error:#?}");
}
};
trace!("setting up logger...");
logging::set_up_logging(arguments.verbosity, options.logger.clone());

info!("openheimer {}", metadata::format());
if is_default {
Expand Down
66 changes: 42 additions & 24 deletions src/logging.rs
Original file line number Diff line number Diff line change
@@ -1,42 +1,60 @@
use tracing_appender::rolling::RollingFileAppender;
use crate::configuration;
use tracing::level_filters::LevelFilter;
use tracing_subscriber::prelude::*;

pub fn set_up_logging(file_appender: RollingFileAppender) {
let file_layer = tracing_subscriber::fmt::layer()
.with_file(true)
.with_line_number(true)
.with_writer(file_appender);
pub fn set_up_logging(verbosity: LevelFilter, logger_options: configuration::Logger) {
let console_layer = tracing_subscriber::fmt::layer()
.with_file(true)
.with_line_number(true);
.with_line_number(true)
.with_writer(std::io::stdout);

match tracing_appender::rolling::Builder::new()
.filename_prefix(logger_options.prefix)
.filename_suffix(logger_options.suffix)
.rotation(logger_options.rotation.clone().into())
.max_log_files(logger_options.max_log_files)
.build(logger_options.directory)
{
Ok(file_writer) => {
let file_layer = tracing_subscriber::fmt::layer()
.with_file(true)
.with_line_number(true)
.with_writer(file_writer);

match tracing::subscriber::set_global_default(
tracing_subscriber::Registry::default()
.with(verbosity)
.with(console_layer)
.with(file_layer),
) {
Ok(()) => (),
Err(error) => eprintln!("unable to set up logging: {error:#?}"),
};
}
Err(error) => {
eprintln!("unable to set up rolling file logger: {error:#?}");

let subscriber = tracing_subscriber::Registry::default()
.with(file_layer)
.with(console_layer);
match tracing::subscriber::set_global_default(subscriber) {
Ok(()) => (),
Err(error) => eprintln!("unable to set up logging: {error:#?}"),
match tracing::subscriber::set_global_default(
tracing_subscriber::Registry::default()
.with(verbosity)
.with(console_layer),
) {
Ok(()) => (),
Err(error) => eprintln!("unable to set up logging: {error:#?}"),
};
}
};
}

#[cfg(test)]
mod test {
use super::set_up_logging;
use crate::configuration::Configuration;
use tracing::{debug, error, info, trace, warn};
use tracing::{debug, error, info, level_filters::LevelFilter, trace, warn};

#[test]
fn log_messages() {
let options = Configuration::default();
set_up_logging(
tracing_appender::rolling::Builder::new()
.filename_prefix(options.logger.prefix)
.filename_suffix(options.logger.suffix)
.rotation(options.logger.rotation.clone().into())
.max_log_files(options.logger.max_log_files)
.build(options.logger.directory)
.expect("should have been able to create logger files"),
);
set_up_logging(LevelFilter::TRACE, Configuration::default().logger);

error!("h");
warn!("e");
Expand Down

0 comments on commit f443494

Please sign in to comment.