pub struct LogRecord {Show 30 fields
pub id: String,
pub invocation_id: String,
pub kind: RecordKind,
pub timestamp: String,
pub hostname: String,
pub pid: u32,
pub omni_dev_version: String,
pub cwd: String,
pub system_user: String,
pub command: Vec<String>,
pub command_line: Vec<String>,
pub exit_code: Option<i32>,
pub duration_ms: Option<u64>,
pub env: BTreeMap<String, String>,
pub source: Option<Source>,
pub mcp_tool: Option<String>,
pub service: Option<String>,
pub method: Option<String>,
pub url: Option<String>,
pub status_code: Option<u16>,
pub elapsed_ms: Option<u64>,
pub via_daemon: bool,
pub daemon_session_id: Option<String>,
pub auth_principal: Option<String>,
pub request_headers: BTreeMap<String, String>,
pub response_headers: BTreeMap<String, String>,
pub request_body: Option<String>,
pub response_body: Option<String>,
pub context: BTreeMap<String, String>,
pub error: Option<String>,
}Expand description
One line of the log. Used for both writing and reading; every field is
#[serde(default)] (tolerant reads) and every optional field is
skip_serializing_if (compact, forward-compatible writes).
Fields§
§id: StringPer-record, time-sortable id (see new_id).
invocation_id: StringShared by an invocation record and every HTTP record it spawned.
kind: RecordKindDiscriminates the record type.
timestamp: StringRFC3339 timestamp with milliseconds.
hostname: StringHost the record was written on.
pid: u32Writing process id.
omni_dev_version: Stringomni-dev version that wrote the record.
cwd: StringWorking directory at write time.
system_user: StringOS user that owns the process.
command: Vec<String>Resolved clap subcommand path, e.g. ["jira","read"].
command_line: Vec<String>Full argv.
exit_code: Option<i32>Process exit code (0 success, 1 error — matches die).
duration_ms: Option<u64>Wall time of the whole invocation.
env: BTreeMap<String, String>Whitelisted, non-secret OMNI_DEV_* env snapshot.
source: Option<Source>What drove the run (cli/mcp/daemon).
mcp_tool: Option<String>When source = mcp, the tool name that drove the run.
service: Option<String>Coarse service tag (jira/confluence/datadog/…) for fast filtering.
method: Option<String>HTTP method.
url: Option<String>Request URL.
status_code: Option<u16>Response status; absent on a network/transport error.
elapsed_ms: Option<u64>Elapsed time of the request.
via_daemon: boolTrue when the request ran inside the daemon (bridge/Snowflake pool).
daemon_session_id: Option<String>Which pooled daemon session served the request.
auth_principal: Option<String>Non-secret identity actually used (token id / OAuth principal) — never the secret itself.
request_headers: BTreeMap<String, String>Redacted request headers (only when OMNI_DEV_LOG_HEADERS=1).
response_headers: BTreeMap<String, String>Redacted response headers (only when OMNI_DEV_LOG_HEADERS=1).
request_body: Option<String>Request body (only when OMNI_DEV_LOG_BODIES=1).
response_body: Option<String>Response body (only when OMNI_DEV_LOG_BODIES=1).
context: BTreeMap<String, String>Free-form correlation tags.
error: Option<String>Top-level error chain (invocation) or per-request error (http).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for LogRecord
impl<'de> Deserialize<'de> for LogRecord
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for LogRecord
impl RefUnwindSafe for LogRecord
impl Send for LogRecord
impl Sync for LogRecord
impl Unpin for LogRecord
impl UnsafeUnpin for LogRecord
impl UnwindSafe for LogRecord
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more