diff --git a/Cargo.lock b/Cargo.lock index 6d12fa9a..3e44f647 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -479,9 +479,9 @@ checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" [[package]] name = "chrono" -version = "0.4.11" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2" +checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6" dependencies = [ "num-integer", "num-traits", @@ -1357,6 +1357,17 @@ dependencies = [ "serde", ] +[[package]] +name = "logging-lib" +version = "0.1.0" +dependencies = [ + "chrono", + "log 0.4.11", + "serde", + "serde_json", + "simplelog", +] + [[package]] name = "loom" version = "0.3.4" @@ -2469,9 +2480,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3" +checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c" dependencies = [ "indexmap", "itoa", @@ -3253,6 +3264,7 @@ name = "vit-servicing-station-server" version = "0.1.0" dependencies = [ "log 0.4.11", + "logging-lib", "structopt", "tokio", "vit-servicing-station-lib", diff --git a/Cargo.toml b/Cargo.toml index 6c7c4d41..5d514c20 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,6 @@ [workspace] members = [ + "logging-lib", "vit-servicing-station-lib", "vit-servicing-station-server", "vit-servicing-station-tests" diff --git a/logging-lib/Cargo.toml b/logging-lib/Cargo.toml new file mode 100644 index 00000000..9fa621d6 --- /dev/null +++ b/logging-lib/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "logging-lib" +version = "0.1.0" +authors = ["danielsanchezq "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +chrono = { version = "0.4.13", features = ["serde"] } +log = "0.4.11" +serde = "1.0.114" +serde_json = "1.0.57" +simplelog = "0.8.0" \ No newline at end of file diff --git a/vit-servicing-station-lib/src/logging/config.rs b/logging-lib/src/config.rs similarity index 100% rename from vit-servicing-station-lib/src/logging/config.rs rename to logging-lib/src/config.rs diff --git a/logging-lib/src/lib.rs b/logging-lib/src/lib.rs new file mode 100644 index 00000000..65593644 --- /dev/null +++ b/logging-lib/src/lib.rs @@ -0,0 +1,3 @@ +pub mod config; +pub mod messages; +mod methods; diff --git a/vit-servicing-station-lib/src/logging/messages.rs b/logging-lib/src/messages.rs similarity index 100% rename from vit-servicing-station-lib/src/logging/messages.rs rename to logging-lib/src/messages.rs diff --git a/logging-lib/src/methods.rs b/logging-lib/src/methods.rs new file mode 100644 index 00000000..8ca3839a --- /dev/null +++ b/logging-lib/src/methods.rs @@ -0,0 +1,43 @@ +#[macro_export] +macro_rules! log { + ($lvl:expr, $($arg:tt)+) => ( + let formatted_message = format_args!($($arg)+).to_string(); + let level = $lvl; + $crate::messages::LogMessageBuilder::default().with_level(level).with_message(formatted_message).build().log(); + ) +} + +#[macro_export] +macro_rules! error { + ($($arg:tt)+) => ( + $crate::log!(log::Level::Error, $($arg)+) + ) +} + +#[macro_export] +macro_rules! warn { + ($($arg:tt)+) => ( + $crate::log!(log::Level::Warn, $($arg)+) + ) +} + +#[macro_export] +macro_rules! info { + ($($arg:tt)+) => ( + $crate::log!(log::Level::Info, $($arg)+) + ) +} + +#[macro_export] +macro_rules! debug { + ($($arg:tt)+) => ( + $crate::log!(log::Level::Debug, $($arg)+) + ) +} + +#[macro_export] +macro_rules! trace { + ($($arg:tt)+) => ( + $crate::log!($log::Level::Trace, $($arg)+) + ) +} diff --git a/vit-servicing-station-lib/src/lib.rs b/vit-servicing-station-lib/src/lib.rs index 194a1031..8b849bf7 100644 --- a/vit-servicing-station-lib/src/lib.rs +++ b/vit-servicing-station-lib/src/lib.rs @@ -8,7 +8,6 @@ extern crate structopt; extern crate diesel_migrations; pub mod db; -pub mod logging; pub mod server; pub mod utils; pub mod v0; diff --git a/vit-servicing-station-lib/src/logging/methods.rs b/vit-servicing-station-lib/src/logging/methods.rs deleted file mode 100644 index 9ca77ffb..00000000 --- a/vit-servicing-station-lib/src/logging/methods.rs +++ /dev/null @@ -1,5 +0,0 @@ -use crate::logging::LogMessage; - -pub fn log(log_message: LogMessage) { - log_message.log() -} diff --git a/vit-servicing-station-lib/src/logging/mod.rs b/vit-servicing-station-lib/src/logging/mod.rs deleted file mode 100644 index e0c0cf68..00000000 --- a/vit-servicing-station-lib/src/logging/mod.rs +++ /dev/null @@ -1,6 +0,0 @@ -pub mod config; -pub mod messages; -mod methods; - -pub use messages::{LogMessage, LogMessageBuilder, LogMessageId}; -pub use methods::log; diff --git a/vit-servicing-station-server/Cargo.toml b/vit-servicing-station-server/Cargo.toml index 2fb85176..9d4afbb5 100644 --- a/vit-servicing-station-server/Cargo.toml +++ b/vit-servicing-station-server/Cargo.toml @@ -8,6 +8,7 @@ edition = "2018" [dependencies] log = "0.4.11" +logging-lib = { path = "../logging-lib" } structopt = "0.3.14" tokio = { version = "0.2.21", features = ["macros"] } vit-servicing-station-lib = { path = "../vit-servicing-station-lib" } diff --git a/vit-servicing-station-server/src/main.rs b/vit-servicing-station-server/src/main.rs index 0738241e..be26b619 100644 --- a/vit-servicing-station-server/src/main.rs +++ b/vit-servicing-station-server/src/main.rs @@ -1,9 +1,12 @@ use structopt::StructOpt; + use vit_servicing_station_lib::{ - db, logging::config::config_log, server, server::exit_codes::ApplicationExitCode, - server::settings as server_settings, server::settings::ServiceSettings, v0, + db, server, server::exit_codes::ApplicationExitCode, server::settings as server_settings, + server::settings::ServiceSettings, v0, }; +use logging_lib::{config::config_log, *}; + #[tokio::main] async fn main() { // load settings from command line (defaults to env variables) @@ -13,7 +16,7 @@ async fn main() { if let Some(settings_file) = &settings.in_settings_file { let in_file_settings = server_settings::load_settings_from_file(settings_file) .unwrap_or_else(|e| { - log::error!("Error loading settings from file {}, {}", settings_file, e); + error!("Error loading settings from file {}, {}", settings_file, e); std::process::exit(ApplicationExitCode::LoadSettingsError.into()) }); // merge input file settings override by cli arguments @@ -56,10 +59,9 @@ async fn main() { let app = v0::filter(context).await; - log::info!( + info!( "Running server at {}, database located at {}", - settings.address, - settings.db_url + settings.address, settings.db_url ); // run server with settings