diff options
Diffstat (limited to 'license-generator/src')
| -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, +    ); +} | 
