nirs4all.core.logging.handlers module

Custom log handlers for nirs4all logging.

This module provides specialized handlers for throttled progress updates, file rotation, and other custom logging behaviors.

class nirs4all.core.logging.handlers.BufferedHandler(max_size: int = 1000)[source]

Bases: Handler

Handler that buffers log records for batch processing.

Useful for collecting logs during a phase and outputting them together, e.g., for branch comparison summaries.

clear() → None[source]

Clear the buffer.

emit(record: LogRecord) → None[source]

Buffer the log record.

Parameters:

record – Log record to buffer.

flush_to(handler: Handler) → None[source]

Flush buffered records to another handler.

Parameters:

handler – Handler to send buffered records to.

get_records() → list[LogRecord][source]

Get buffered records.

Returns:

List of buffered log records.

class nirs4all.core.logging.handlers.NullHandler(level=0)[source]

Bases: Handler

Handler that discards all log records.

Used when logging should be completely silent.

emit(record: LogRecord) → None[source]

Discard the log record.

Parameters:

record – Log record (ignored).