From 0fb54beb13a6998056a60eb8a7a7fed7d43488ba Mon Sep 17 00:00:00 2001 From: Tania Batieva Date: Mon, 16 Mar 2020 21:07:57 +0200 Subject: [PATCH 1/2] Add KV trait for Tags --- Cargo.toml | 2 +- src/web/tags.rs | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 442a5090..94c32c48 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,7 +52,7 @@ serde_json = { version = "1.0", features = ["arbitrary_precision"] } serde_urlencoded = "0.6.1" scheduled-thread-pool = "0.2" sha2 = "0.8.0" -slog = { version = "2.5", features = ["max_level_trace", "release_max_level_error"] } +slog = { version = "2.5", features = ["max_level_trace", "release_max_level_error", "dynamic-keys"] } slog-async = "2.3" slog-envlogger = "2.2.0" slog-mozlog-json = "0.1" diff --git a/src/web/tags.rs b/src/web/tags.rs index 5afb43f1..6bd0de46 100644 --- a/src/web/tags.rs +++ b/src/web/tags.rs @@ -12,6 +12,7 @@ use serde::{ Serialize, }; use serde_json::value::Value; +use slog::{Key, KV, Record}; use crate::server::user_agent::parse_user_agent; @@ -141,3 +142,12 @@ impl Into> for Tags { result } } + +impl KV for Tags { + fn serialize(&self, _rec: &Record<'_>, serializer: &mut dyn slog::Serializer) -> slog::Result { + for (key, val) in &self.tags { + serializer.emit_str(Key::from(key.clone()), &val)?; + } + Ok(()) + } +} From 5d2138f542c530cf1dcb5535108191dc160dcec9 Mon Sep 17 00:00:00 2001 From: Tania Batieva Date: Tue, 17 Mar 2020 21:54:08 +0200 Subject: [PATCH 2/2] Fix fmt warning --- src/web/tags.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/web/tags.rs b/src/web/tags.rs index 6bd0de46..f3840100 100644 --- a/src/web/tags.rs +++ b/src/web/tags.rs @@ -12,7 +12,7 @@ use serde::{ Serialize, }; use serde_json::value::Value; -use slog::{Key, KV, Record}; +use slog::{Key, Record, KV}; use crate::server::user_agent::parse_user_agent;