Skip to content

Logger

veltix.logger.core.Logger

Veltix logger with simple, powerful API.

Thread-safe logger with console and file output support. Can be passed to Client/Server or used standalone.

This is a singleton - only one instance can exist.

__new__

__new__(config: Optional[LoggerConfig] = None) -> Logger

Create or return the singleton instance.

Parameters:

Name Type Description Default
config Optional[LoggerConfig]

Logger configuration (only used on first creation)

None

Returns:

Type Description
Logger

The singleton Logger instance

__init__

__init__(config: Optional[LoggerConfig] = None)

Initialize logger (only on first creation).

Parameters:

Name Type Description Default
config Optional[LoggerConfig]

Logger configuration (uses defaults if None, only used on first creation)

None

get_instance classmethod

get_instance(config: Optional[LoggerConfig] = None) -> Logger

Get the singleton instance.

Parameters:

Name Type Description Default
config Optional[LoggerConfig]

Logger configuration (only used on first creation)

None

Returns:

Type Description
Logger

The singleton Logger instance

reset_instance classmethod

reset_instance() -> None

Reset the singleton instance (mainly for testing).

trace

trace(message: str) -> None

Log TRACE level message.

debug

debug(message: str) -> None

Log DEBUG level message.

info

info(message: str) -> None

Log INFO level message.

success

success(message: str) -> None

Log SUCCESS level message.

warning

warning(message: str) -> None

Log WARNING level message.

error

error(message: str) -> None

Log ERROR level message.

critical

critical(message: str) -> None

Log CRITICAL level message.

set_level

set_level(level: LogLevel) -> None

Change log level.

Parameters:

Name Type Description Default
level LogLevel

New minimum log level

required

enable

enable() -> None

Enable logging.

disable

disable() -> None

Disable all logging.

get_stats

get_stats() -> dict[LogLevel, int]

Get logging statistics.

Returns:

Type Description
dict[LogLevel, int]

Dictionary mapping log levels to message counts

veltix.logger.config.LoggerConfig dataclass

Configuration for Veltix logger.

Attributes:

Name Type Description
level LogLevel

Minimum log level to display (default: INFO)

enabled bool

Enable/disable all logging (default: True)

use_colors bool

Enable colored output for console (default: True)

show_timestamp bool

Show timestamp in logs (default: True)

show_caller bool

Show file:line information (default: True)

show_level bool

Show log level name (default: True)

file_path str | Path | None

Path to log file (default: None = no file logging)

file_rotation_size int

Max file size in bytes before rotation (default: 10MB)

file_backup_count int

Number of backup files to keep (default: 5)

stream TextIO

Output stream for console logs (default: stdout)

async_write bool

Use async file writing for performance (default: False)

buffer_size int

Buffer size for async writes (default: 100)

__post_init__

__post_init__()

Validate and normalize configuration.

veltix.logger.levels.LogLevel

Bases: IntEnum

Log severity levels.

Levels are ordered by severity, allowing simple filtering: - TRACE: Detailed debugging information - DEBUG: General debugging information - INFO: Informational messages - SUCCESS: Successful operations (between INFO and WARNING) - WARNING: Warning messages for potential issues - ERROR: Error messages for failures - CRITICAL: Critical errors requiring immediate attention

__str__

__str__() -> str

Return level name.