pub struct LogConfig {
pub level: LogLevel,
pub message: Value,
pub fields: HashMap<String, Value>,
pub compiled_message: Option<Arc<Logic>>,
pub compiled_fields: Vec<(String, Option<Arc<Logic>>)>,
}Expand description
Configuration for the log function.
The message and field expressions are pre-compiled at startup.
Fields§
§level: LogLevelLog level to emit at
message: ValueJSONLogic expression to produce the log message string
fields: HashMap<String, Value>Additional structured fields: each value is a JSONLogic expression
compiled_message: Option<Arc<Logic>>Pre-compiled message JSONLogic, populated by LogicCompiler.
compiled_fields: Vec<(String, Option<Arc<Logic>>)>Pre-compiled JSONLogic for each fields entry, populated by
LogicCompiler. The inner Option is None for fields whose logic
failed to compile (logged at engine construction).
Implementations§
Source§impl LogConfig
impl LogConfig
Sourcepub fn execute(
&self,
message: &mut Message,
engine: &Arc<Engine>,
) -> Result<(TaskOutcome, Vec<Change>)>
pub fn execute( &self, message: &mut Message, engine: &Arc<Engine>, ) -> Result<(TaskOutcome, Vec<Change>)>
Execute the log function, opening a fresh thread-local arena scope.
Use this entry point when calling LogConfig outside an existing
with_arena scope (direct API users, tests). Inside a workflow sync
stretch the dispatch goes through Self::execute_in_arena to reuse
the cached ArenaContext and avoid a redundant to_arena walk.