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§
Sourcefn on_incoming(&self, message: &str)
fn on_incoming(&self, message: &str)
Log an inbound wire message.
Sourcefn on_outgoing(&self, message: &str)
fn on_outgoing(&self, message: &str)
Log an outbound wire message.
Provided Methods§
Sourcefn shutdown<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
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>
impl Log for Box<dyn Log>
Source§fn on_incoming(&self, message: &str)
fn on_incoming(&self, message: &str)
Source§fn on_outgoing(&self, message: &str)
fn on_outgoing(&self, message: &str)
Source§fn shutdown<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn shutdown<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
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".