Skip to main content

Log

Trait Log 

Source
pub trait Log: Send + Sync {
    // Required methods
    fn on_incoming(&self, message: &str);
    fn on_outgoing(&self, message: &str);
    fn on_event(&self, text: &str);

    // Provided method
    fn shutdown<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait { ... }
}
Expand description

A FIX log sink. Message logging (incoming/outgoing) is kept separate from event logging.

Methods are best-effort and infallible from the caller’s perspective; a sink that cannot write drops the entry rather than failing the session.

Required Methods§

Source

fn on_incoming(&self, message: &str)

Log an inbound wire message.

Source

fn on_outgoing(&self, message: &str)

Log an outbound wire message.

Source

fn on_event(&self, text: &str)

Log a session event.

Provided Methods§

Source

fn shutdown<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

NEW-91 (feature 009): flush any entries still buffered in an async background writer and await its completion, so a shutdown doesn’t drop entries queued right before it. Default no-op — every synchronous backend (ScreenLog/FileLog/TracingLog) already persists each entry before its on_* call returns; only the channel-backed async backends (Sql/Mssql/Mongo/RedbLog, each behind its own Cargo feature) override this.

Trait Implementations§

Source§

impl Log for Box<dyn Log>

Source§

fn on_incoming(&self, message: &str)

Log an inbound wire message.
Source§

fn on_outgoing(&self, message: &str)

Log an outbound wire message.
Source§

fn on_event(&self, text: &str)

Log a session event.
Source§

fn shutdown<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

NEW-91 (feature 009): flush any entries still buffered in an async background writer and await its completion, so a shutdown doesn’t drop entries queued right before it. Default no-op — every synchronous backend (ScreenLog/FileLog/TracingLog) already persists each entry before its on_* call returns; only the channel-backed async backends (Sql/Mssql/Mongo/RedbLog, each behind its own Cargo feature) override this.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl Log for Box<dyn Log>

Source§

fn on_incoming(&self, message: &str)

Source§

fn on_outgoing(&self, message: &str)

Source§

fn on_event(&self, text: &str)

Source§

fn shutdown<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Implementors§