diff options
author | Teddy Wing | 2018-11-11 23:53:18 +0100 |
---|---|---|
committer | Teddy Wing | 2018-11-11 23:53:18 +0100 |
commit | c49e6b14ff9951a1cb31e5c05841e942a8b696cf (patch) | |
tree | 05e70db057f066c5e22d22646eda4aa460046119 | |
parent | dee0767b197f96cb4ffd4e6ad3d303feb9245d41 (diff) | |
download | dome-key-web-c49e6b14ff9951a1cb31e5c05841e942a8b696cf.tar.bz2 |
main(): Move logging code into its own module
This will enable us to use the logging code in other binaries.
-rw-r--r-- | license-generator/src/bin/license-generator.rs | 40 | ||||
-rw-r--r-- | license-generator/src/lib.rs | 3 | ||||
-rw-r--r-- | license-generator/src/logger.rs | 44 |
3 files changed, 50 insertions, 37 deletions
diff --git a/license-generator/src/bin/license-generator.rs b/license-generator/src/bin/license-generator.rs index 296db0a..d99af57 100644 --- a/license-generator/src/bin/license-generator.rs +++ b/license-generator/src/bin/license-generator.rs @@ -7,52 +7,18 @@ extern crate simplelog; extern crate license_generator; -use std::env; -use std::fs::OpenOptions; use std::io::{Read, Write}; -use simplelog::{Config, LevelFilter, WriteLogger}; - use license_generator::database; use license_generator::errors::*; +use license_generator::logger; use license_generator::params; use license_generator::purchaser::Purchaser; use license_generator::request; use license_generator::response; -fn log_request(req: &fastcgi::Request, post_params: &str) { - info!( - "{method} {path} {query} - {protocol} - {user_agent} - {remote_addr} | {forwarded_for} / {post_params}", - method = req.param("REQUEST_METHOD") - .unwrap_or("REQUEST_METHOD".into()), - path = req.param("SCRIPT_NAME") - .unwrap_or("SCRIPT_NAME".into()), - query = req.param("QUERY_STRING") - .unwrap_or("QUERY_STRING".into()), - protocol = req.param("SERVER_PROTOCOL") - .unwrap_or("SERVER_PROTOCOL".into()), - user_agent = req.param("HTTP_USER_AGENT") - .unwrap_or("HTTP_USER_AGENT".into()), - remote_addr = req.param("REMOTE_ADDR") - .unwrap_or("REMOTE_ADDR".into()), - forwarded_for = req.param("HTTP_X_FORWARDED_FOR") - .unwrap_or("HTTP_X_FORWARDED_FOR".into()), - post_params = post_params, - ); -} - fn main() -> Result<()> { - let log_file_path = env::var("LOG_FILE") - .chain_err(|| "LOG_FILE environment variable not found")?; - - let log_file = OpenOptions::new() - .append(true) - .create(true) - .open(log_file_path)?; - - let mut log_config = Config::default(); - log_config.time_format = Some("%+"); - WriteLogger::init(LevelFilter::Info, log_config, log_file)?; + logger::init()?; let pool = match database::get_database_pool() .chain_err(|| "failed to create a database connection pool") @@ -71,7 +37,7 @@ fn main() -> Result<()> { Err(e) => error!("{}", e), } - log_request(&req, ¶ms); + logger::log_request(&req, ¶ms); match req.param("REQUEST_METHOD") { Some(method) => { diff --git a/license-generator/src/lib.rs b/license-generator/src/lib.rs index 11051cc..56e2f67 100644 --- a/license-generator/src/lib.rs +++ b/license-generator/src/lib.rs @@ -1,11 +1,13 @@ #[macro_use] extern crate error_chain; +extern crate fastcgi; #[macro_use] extern crate log; extern crate mysql; extern crate paddle; extern crate rand; +extern crate simplelog; extern crate sha1; extern crate url; extern crate zip as zip_lib; @@ -13,6 +15,7 @@ extern crate zip as zip_lib; pub mod database; pub mod errors; +pub mod logger; pub mod params; pub mod purchaser; pub mod request; diff --git a/license-generator/src/logger.rs b/license-generator/src/logger.rs new file mode 100644 index 0000000..1d96ff1 --- /dev/null +++ b/license-generator/src/logger.rs @@ -0,0 +1,44 @@ +use std::env; +use std::fs::OpenOptions; + +use fastcgi; +use simplelog::{Config, LevelFilter, WriteLogger}; + +use errors::*; + +pub fn init() -> Result<()> { + let log_file_path = env::var("LOG_FILE") + .chain_err(|| "LOG_FILE environment variable not found")?; + + let log_file = OpenOptions::new() + .append(true) + .create(true) + .open(log_file_path)?; + + let mut log_config = Config::default(); + log_config.time_format = Some("%+"); + WriteLogger::init(LevelFilter::Info, log_config, log_file)?; + + Ok(()) +} + +pub fn log_request(req: &fastcgi::Request, post_params: &str) { + info!( + "{method} {path} {query} - {protocol} - {user_agent} - {remote_addr} | {forwarded_for} / {post_params}", + method = req.param("REQUEST_METHOD") + .unwrap_or("REQUEST_METHOD".into()), + path = req.param("SCRIPT_NAME") + .unwrap_or("SCRIPT_NAME".into()), + query = req.param("QUERY_STRING") + .unwrap_or("QUERY_STRING".into()), + protocol = req.param("SERVER_PROTOCOL") + .unwrap_or("SERVER_PROTOCOL".into()), + user_agent = req.param("HTTP_USER_AGENT") + .unwrap_or("HTTP_USER_AGENT".into()), + remote_addr = req.param("REMOTE_ADDR") + .unwrap_or("REMOTE_ADDR".into()), + forwarded_for = req.param("HTTP_X_FORWARDED_FOR") + .unwrap_or("HTTP_X_FORWARDED_FOR".into()), + post_params = post_params, + ); +} |