pub struct SessionLogger { /* private fields */ }Expand description
Session logger that records terminal output to files.
The logger captures PTY output with timestamps and can export to multiple formats. It uses buffered writes for performance.
See the module-level documentation for information about sensitive data filtering.
Implementations§
Source§impl SessionLogger
impl SessionLogger
Sourcepub fn new(
format: SessionLogFormat,
log_dir: &Path,
dimensions: (usize, usize),
title: Option<String>,
) -> Result<Self>
pub fn new( format: SessionLogFormat, log_dir: &Path, dimensions: (usize, usize), title: Option<String>, ) -> Result<Self>
Create a new session logger.
§Arguments
format- The output format to uselog_dir- Directory where log files are storeddimensions- Terminal dimensions (cols, rows)title- Optional session title
Sourcepub fn set_redact_passwords(&mut self, enabled: bool)
pub fn set_redact_passwords(&mut self, enabled: bool)
Enable or disable password prompt detection and input redaction.
When enabled, the logger monitors terminal output for common password prompt patterns and suppresses input recording during password entry. Enabled by default.
Sourcepub fn redact_passwords(&self) -> bool
pub fn redact_passwords(&self) -> bool
Check whether password redaction is enabled.
Sourcepub fn set_echo_suppressed(&mut self, suppressed: bool)
pub fn set_echo_suppressed(&mut self, suppressed: bool)
Externally signal that echo is suppressed (e.g., PTY echo off).
When set to true, all input recording is suppressed regardless of
prompt detection. This is useful when the caller has access to the
terminal’s echo mode state.
Call with false when echo is re-enabled.
Sourcepub fn echo_suppressed(&self) -> bool
pub fn echo_suppressed(&self) -> bool
Check whether echo is externally marked as suppressed.
Sourcepub fn record_output(&mut self, data: &[u8])
pub fn record_output(&mut self, data: &[u8])
Record output data from the terminal.
Sourcepub fn record_input(&mut self, data: &[u8])
pub fn record_input(&mut self, data: &[u8])
Record input data (keyboard input).
When password redaction is active (either via prompt detection or explicit echo suppression), input data is replaced with a redaction marker. A newline or carriage return in the input data signals the end of a password entry, clearing the prompt-detected suppression.
Sourcepub fn record_resize(&mut self, cols: usize, rows: usize)
pub fn record_resize(&mut self, cols: usize, rows: usize)
Record a terminal resize event.
Sourcepub fn is_active(&self) -> bool
pub fn is_active(&self) -> bool
Check if logging is active.
A write failure clears active, so this reflects writer health and not
just the user’s last toggle: a transcript that stopped growing mid-session
must not keep reporting itself as being recorded.
Sourcepub fn write_error(&self) -> Option<&str>
pub fn write_error(&self) -> Option<&str>
The write failure that stopped logging, if any.
Sourcepub fn output_path(&self) -> &PathBuf
pub fn output_path(&self) -> &PathBuf
Get the output path.
Trait Implementations§
Source§impl Drop for SessionLogger
impl Drop for SessionLogger
Auto Trait Implementations§
impl Freeze for SessionLogger
impl RefUnwindSafe for SessionLogger
impl Send for SessionLogger
impl Sync for SessionLogger
impl Unpin for SessionLogger
impl UnsafeUnpin for SessionLogger
impl UnwindSafe for SessionLogger
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
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