escape msg

This commit is contained in:
ntr 2019-08-20 14:08:06 +10:00
parent 796e5835e9
commit 682be021b7

View File

@ -55,9 +55,17 @@ mod warden;
use std::thread::{spawn}; use std::thread::{spawn};
use std::path::{Path}; use std::path::{Path};
use fern::colors::{Color, ColoredLevelConfig}; use fern::colors::{Color, ColoredLevelConfig};
use iron::prelude::*;
use crossbeam_channel::{unbounded}; use crossbeam_channel::{unbounded};
#[derive(Serialize)]
struct JsonLog {
time: String,
name: String,
level: String,
msg: String,
}
fn setup_logger() -> Result<(), fern::InitError> { fn setup_logger() -> Result<(), fern::InitError> {
let colors_line = ColoredLevelConfig::new() let colors_line = ColoredLevelConfig::new()
.error(Color::Red) .error(Color::Red)
@ -80,14 +88,18 @@ fn setup_logger() -> Result<(), fern::InitError> {
}) })
.chain(std::io::stdout()); .chain(std::io::stdout());
let file = fern::Dispatch::new() let json = fern::Dispatch::new()
.format(|out, message, record| { .format(|out, message, record| {
let json = JsonLog {
time: chrono::Local::now().to_rfc3339(),
name: record.target().to_string(),
level: record.level().to_string(),
msg: message.to_string()
};
out.finish(format_args!( out.finish(format_args!(
"{{\"time\":\"{}\",\"name\":\"{}\",\"level\":\"{}\",\"msg\":\"{}\"}}", "{}",
chrono::Local::now().to_rfc3339(), serde_json::to_string(&json).unwrap(),
record.target(),
record.level(),
message
)) ))
}) })
.chain(fern::log_file("/var/log/mnml/mnml.log")?); .chain(fern::log_file("/var/log/mnml/mnml.log")?);
@ -98,7 +110,7 @@ fn setup_logger() -> Result<(), fern::InitError> {
.level_for("iron", log::LevelFilter::Info) .level_for("iron", log::LevelFilter::Info)
.level(log::LevelFilter::Info) .level(log::LevelFilter::Info)
.chain(term) .chain(term)
.chain(file) .chain(json)
.apply()?; .apply()?;
Ok(()) Ok(())