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 /license-generator/src/logger.rs | |
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.
Diffstat (limited to 'license-generator/src/logger.rs')
-rw-r--r-- | license-generator/src/logger.rs | 44 |
1 files changed, 44 insertions, 0 deletions
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, + ); +} |