From 42dcf4e2d3bda6e29fe939393c5a57cec24d26d3 Mon Sep 17 00:00:00 2001 From: ntr Date: Wed, 13 Nov 2019 11:35:58 +1100 Subject: [PATCH] syslog chain instead of json --- etc/telegraf/telegraf.conf | 14 +++++++------- server/Cargo.toml | 3 ++- server/src/lib.rs | 37 ++++++++++++------------------------- 3 files changed, 21 insertions(+), 33 deletions(-) diff --git a/etc/telegraf/telegraf.conf b/etc/telegraf/telegraf.conf index 068456f7..f2c736e7 100644 --- a/etc/telegraf/telegraf.conf +++ b/etc/telegraf/telegraf.conf @@ -295,13 +295,13 @@ ## Uncomment to remove deprecated metrics. # fielddrop = ["uptime_format"] -[[inputs.tail]] - files = ["/var/log/mnml/mnml.log"] - name_override = "mnml_log" - data_format = "json" - json_time_key = "time" - json_time_format = "2006-01-02T15:04:05.999999999Z07:00" - json_string_fields = ["level", "module", "msg"] +# [[inputs.tail]] +# files = ["/var/log/mnml/mnml.log"] +# name_override = "mnml_log" +# data_format = "json" +# json_time_key = "time" +# json_time_format = "2006-01-02T15:04:05.999999999Z07:00" +# json_string_fields = ["level", "module", "msg"] [[inputs.syslog]] server = "tcp://:6514" diff --git a/server/Cargo.toml b/server/Cargo.toml index 3f9b7bfb..6461cc90 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -23,7 +23,8 @@ failure = "0.1" dotenv = "0.9.0" log = "0.4" -fern = { version = "0.5", features = ["colored"] } +fern = { version = "0.5", features = ["colored", "syslog-4"] } +syslog = "4" iron = "0.6" bodyparser = "0.8" diff --git a/server/src/lib.rs b/server/src/lib.rs index 00d0af55..859bd289 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -62,15 +62,18 @@ use std::path::{Path}; use fern::colors::{Color, ColoredLevelConfig}; use crossbeam_channel::{unbounded}; -#[derive(Serialize)] -struct JsonLog { - time: String, - module: String, - level: String, - msg: String, -} - pub fn setup_logger() -> Result<(), fern::InitError> { + let formatter = syslog::Formatter3164 { + facility: syslog::Facility::LOG_USER, + hostname: None, + process: "mnml".to_owned(), + pid: 0, + }; + + let syslog = fern::Dispatch::new() + .level(log::LevelFilter::Info) + .chain(syslog::unix(formatter).unwrap()); + let colors_line = ColoredLevelConfig::new() .error(Color::Red) .warn(Color::Yellow) @@ -92,29 +95,13 @@ pub fn setup_logger() -> Result<(), fern::InitError> { }) .chain(std::io::stdout()); - let json = fern::Dispatch::new() - .format(|out, message, record| { - let json = JsonLog { - time: chrono::Local::now().to_rfc3339(), - module: record.target().to_string(), - level: record.level().to_string(), - msg: message.to_string() - }; - - out.finish(format_args!( - "{}", - serde_json::to_string(&json).unwrap(), - )) - }) - .chain(fern::log_file("/var/log/mnml/mnml.log")?); - fern::Dispatch::new() .level_for("postgres", log::LevelFilter::Info) .level_for("ws", log::LevelFilter::Warn) .level_for("iron", log::LevelFilter::Info) .level(log::LevelFilter::Info) .chain(term) - .chain(json) + .chain(syslog) .apply()?; Ok(())