Handlers API

Handler classes for different output destinations.

RichColorLogHandler

class RichColorLogHandler(RichHandler)

Rich-based handler with table layout and syntax highlighting.

Parameters:
  • lexer (str, optional) – Pygments lexer name.

  • show_background (bool) – Enable background colors.

  • render_emoji (bool) – Render emoji characters.

  • show_icon (bool) – Show level icons.

  • icon_first (bool) – Place icon before timestamp.

  • theme (str) – Pygments syntax theme.

  • format_template (str, optional) – Custom format string.

  • level_in_message (bool) – Include level in message.

  • show_type (bool) – Show message type.

Inherits all parameters from Rich’s RichHandler.

Example:

from richcolorlog.logger import RichColorLogHandler

handler = RichColorLogHandler(
    show_background=True,
    show_icon=True,
    icon_first=True,
    theme='monokai',
)

logger = logging.getLogger('myapp')
logger.addHandler(handler)

AnsiLogHandler

class AnsiLogHandler(logging.StreamHandler)

ANSI escape code handler with icon support.

Parameters:
  • lexer (str, optional) – Pygments lexer name.

  • show_background (bool) – Enable background colors.

  • format_template (str, optional) – Custom format string.

  • show_time (bool) – Show timestamp.

  • show_name (bool) – Show logger name.

  • show_pid (bool) – Show process ID.

  • show_level (bool) – Show log level.

  • show_path (bool) – Show file path.

  • show_icon (bool) – Show level icons.

  • icon_first (bool) – Place icon before timestamp.

  • level_in_message (bool) – Include level in message.

  • use_colors (bool) – Enable ANSI colors.

Example:

from richcolorlog.logger import AnsiLogHandler

handler = AnsiLogHandler(
    show_background=True,
    show_icon=True,
    use_colors=True,
)

RabbitMQHandler

class RabbitMQHandler(logging.Handler)

Handler for sending logs to RabbitMQ.

Parameters:
  • host (str) – RabbitMQ server hostname.

  • port (int) – RabbitMQ server port.

  • exchange (str) – Exchange name.

  • username (str) – Authentication username.

  • password (str) – Authentication password.

  • vhost (str) – Virtual host.

  • level (int) – Minimum logging level.

emit(record)

Send log record to RabbitMQ with routing_key = level.

close()

Close RabbitMQ connection.

Example:

from richcolorlog.logger import RabbitMQHandler

handler = RabbitMQHandler(
    host='localhost',
    port=5672,
    exchange='app_logs',
    username='user',
    password='pass',
)

KafkaHandler

class KafkaHandler(logging.Handler)

Handler for sending logs to Apache Kafka.

Parameters:
  • host (str) – Kafka broker hostname.

  • port (int) – Kafka broker port.

  • topic (str) – Topic name.

  • use_level_in_topic (bool) – Append level to topic name.

  • level (int) – Minimum logging level.

emit(record)

Send log record to Kafka.

close()

Close Kafka producer.

Example:

from richcolorlog.logger import KafkaHandler

handler = KafkaHandler(
    host='localhost',
    port=9092,
    topic='app_logs',
    use_level_in_topic=True,
)

ZeroMQHandler

class ZeroMQHandler(logging.Handler)

Handler for sending logs via ZeroMQ.

Parameters:
  • host (str) – ZeroMQ endpoint hostname.

  • port (int) – ZeroMQ endpoint port.

  • socket_type (str) – Socket type (‘PUB’ or ‘PUSH’).

  • level (int) – Minimum logging level.

emit(record)

Send log record via ZeroMQ.

close()

Close ZeroMQ socket and context.

Example:

from richcolorlog.logger import ZeroMQHandler

handler = ZeroMQHandler(
    host='localhost',
    port=5555,
    socket_type='PUB',
)

SyslogHandler

class SyslogHandler(logging.handlers.SysLogHandler)

Enhanced syslog handler with proper severity mapping.

Parameters:
  • host (str) – Syslog server hostname.

  • port (int) – Syslog server port.

  • facility (int) – Syslog facility code.

  • level (int) – Minimum logging level.

Example:

from richcolorlog.logger import SyslogHandler
import logging.handlers

handler = SyslogHandler(
    host='localhost',
    port=514,
    facility=logging.handlers.SysLogHandler.LOG_LOCAL0,
)

DatabaseHandler

class DatabaseHandler(logging.Handler)

Handler for storing logs in a database.

Parameters:
  • db_type (str) – Database type (‘postgresql’, ‘mysql’, ‘mariadb’, ‘sqlite’).

  • host (str) – Database server hostname.

  • port (int, optional) – Database server port.

  • database (str) – Database name.

  • user (str) – Database username.

  • password (str) – Database password.

  • level (int) – Minimum logging level.

emit(record)

Store log record in database.

close()

Close database connection.

Example:

from richcolorlog.logger import DatabaseHandler

handler = DatabaseHandler(
    db_type='postgresql',
    host='localhost',
    port=5432,
    database='logs',
    user='logger',
    password='password',
)