Custom log format support

This commit is contained in:
Raphaël Thériault 2019-10-09 09:14:47 -04:00
parent 5492744299
commit ea56031235
4 changed files with 24 additions and 2 deletions

View File

@ -2,3 +2,6 @@ PORT=8080
DATABASE_URL=target/database.db
POOL_SIZE=4
FILES_DIR=target/static/
RUST_LOG=actix_web=debug
LOG_FORMAT='[%r] (%D ms) : [%s] (%b B)'

View File

@ -1,4 +1,6 @@
#[macro_use]
extern crate cfg_if;
#[macro_use]
extern crate diesel;
#[macro_use]
extern crate serde;

View File

@ -6,7 +6,7 @@ use filite::setup::{self, Config};
use filite::Pool;
use actix_files::NamedFile;
use actix_web::{middleware, web, App, Error, HttpResponse, HttpServer, Responder};
use actix_web::{web, App, Error, HttpResponse, HttpServer, Responder};
use chrono::{DateTime, NaiveDateTime, Utc};
use futures::Future;
use std::process;
@ -157,7 +157,7 @@ fn main() {
App::new()
.data(config.clone())
.data(pool.clone())
.wrap(middleware::Logger::default())
.wrap(setup::logger_middleware())
.route("/", web::get().to(index))
.service(web::resource("/config").route(web::get().to(get_config)))
.service(web::resource("/f").route(web::get().to_async(get_files)))

View File

@ -2,6 +2,7 @@
use crate::Pool;
use actix_web::middleware::Logger;
use diesel::r2d2::{self, ConnectionManager};
use diesel::sqlite::SqliteConnection;
use std::env;
@ -148,3 +149,19 @@ pub fn init_logger() {
}
env_logger::init();
}
/// Returs the logger middleware
pub fn logger_middleware() -> Logger {
cfg_if! {
if #[cfg(debug_assertions)] {
dotenv::dotenv().ok();
if let Ok(format) = env::var("LOG_FORMAT") {
Logger::new(&format)
} else {
Logger::default()
}
} else {
Logger::default()
}
}
}