aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2018-11-11 23:53:18 +0100
committerTeddy Wing2018-11-11 23:53:18 +0100
commitc49e6b14ff9951a1cb31e5c05841e942a8b696cf (patch)
tree05e70db057f066c5e22d22646eda4aa460046119
parentdee0767b197f96cb4ffd4e6ad3d303feb9245d41 (diff)
downloaddome-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.rs40
-rw-r--r--license-generator/src/lib.rs3
-rw-r--r--license-generator/src/logger.rs44
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, &params);
+ logger::log_request(&req, &params);
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,
+ );
+}