elif_http/logging/structured.rs
1//! Structured logging utilities
2
3use serde_json::{json, Value};
4
5/// Create a structured log entry
6pub fn log_entry(level: &str, message: &str, fields: Option<Value>) -> Value {
7 let mut entry = json!({
8 "timestamp": chrono::Utc::now().to_rfc3339(),
9 "level": level,
10 "message": message
11 });
12
13 if let Some(Value::Object(fields_map)) = fields {
14 if let Value::Object(entry_map) = &mut entry {
15 entry_map.extend(fields_map);
16 }
17 }
18
19 entry
20}