syslog chain instead of json

This commit is contained in:
ntr 2019-11-13 11:35:58 +11:00
parent abdaa5fd56
commit 42dcf4e2d3
3 changed files with 21 additions and 33 deletions

View File

@ -295,13 +295,13 @@
## Uncomment to remove deprecated metrics. ## Uncomment to remove deprecated metrics.
# fielddrop = ["uptime_format"] # fielddrop = ["uptime_format"]
[[inputs.tail]] # [[inputs.tail]]
files = ["/var/log/mnml/mnml.log"] # files = ["/var/log/mnml/mnml.log"]
name_override = "mnml_log" # name_override = "mnml_log"
data_format = "json" # data_format = "json"
json_time_key = "time" # json_time_key = "time"
json_time_format = "2006-01-02T15:04:05.999999999Z07:00" # json_time_format = "2006-01-02T15:04:05.999999999Z07:00"
json_string_fields = ["level", "module", "msg"] # json_string_fields = ["level", "module", "msg"]
[[inputs.syslog]] [[inputs.syslog]]
server = "tcp://:6514" server = "tcp://:6514"

View File

@ -23,7 +23,8 @@ failure = "0.1"
dotenv = "0.9.0" dotenv = "0.9.0"
log = "0.4" log = "0.4"
fern = { version = "0.5", features = ["colored"] } fern = { version = "0.5", features = ["colored", "syslog-4"] }
syslog = "4"
iron = "0.6" iron = "0.6"
bodyparser = "0.8" bodyparser = "0.8"

View File

@ -62,15 +62,18 @@ use std::path::{Path};
use fern::colors::{Color, ColoredLevelConfig}; use fern::colors::{Color, ColoredLevelConfig};
use crossbeam_channel::{unbounded}; use crossbeam_channel::{unbounded};
#[derive(Serialize)]
struct JsonLog {
time: String,
module: String,
level: String,
msg: String,
}
pub fn setup_logger() -> Result<(), fern::InitError> { 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() let colors_line = ColoredLevelConfig::new()
.error(Color::Red) .error(Color::Red)
.warn(Color::Yellow) .warn(Color::Yellow)
@ -92,29 +95,13 @@ pub fn setup_logger() -> Result<(), fern::InitError> {
}) })
.chain(std::io::stdout()); .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() fern::Dispatch::new()
.level_for("postgres", log::LevelFilter::Info) .level_for("postgres", log::LevelFilter::Info)
.level_for("ws", log::LevelFilter::Warn) .level_for("ws", log::LevelFilter::Warn)
.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(json) .chain(syslog)
.apply()?; .apply()?;
Ok(()) Ok(())