API

class pymccool.logging.Logger(config: LoggerKwargs | None = None, **kwargs)

Bases: object

Opinionated logger with built in creature comforts

CRITICAL = 50
DEBUG = 10
ERROR = 40
FATAL = 50
INFO = 20
NOTSET = 0
VERBOSE = 5
WARN = 30
WARNING = 30
close()
create_directories(base_path)

Ensure directories for the log files are availalbe

create_file_handler(filename=None, level=None, formatter=None) RotatingFileHandler

Create a rotating file handler for the logger

create_stream_handler(level=None, formatter=None, stream=None) StreamHandler

Create a stream handler for the logger

get_loki_handler(kwargs: LoggerKwargs)

Get handler for emitting messages to a Loki log server

pretty(loglevel: int, object, *args, **kwargs)

Pretty logging for nested objects Use Logger.INFO/DEBUG/VERBOSE etc. for loglevel

verbose(msg, *args, **kwargs)
class pymccool.logging.LoggerKwargs(app_name: str = 'default_logger', default_level: int = 10, stream_color: bool = True, stream_level: int = 20, grafana_loki_endpoint: str = '', grafana_tempo_endpoint: str = '', base_path: str = '/home/docs/checkouts/readthedocs.org/user_builds/pymccool/checkouts/latest/docs/Logs', uuid: UUID = UUID('0d1bdbcc-ed55-11ef-8efa-0242ac110002'))

Bases: object

Class containing all kwargs for the Logger class

Parameters:
  • app_name – Name of the application

  • default_level – Logging level for the application

  • stream_color – Enable or disable colors for the stream handler

  • stream_level – Logging level for the stream handler

  • grafana_loki_endpoint – URL for the Grafana Loki endpoint

  • grafana_tempo_endpoint – URL for the Grafana Tempo endpoint

  • uuid – UUID for the application instance

app_name: str = 'default_logger'
base_path: str = '/home/docs/checkouts/readthedocs.org/user_builds/pymccool/checkouts/latest/docs/Logs'
default_level: int = 10
grafana_loki_endpoint: str = ''
grafana_tempo_endpoint: str = ''
stream_color: bool = True
stream_level: int = 20
uuid: UUID = UUID('0d1bdbcc-ed55-11ef-8efa-0242ac110002')
class pymccool.logging.TimeSeriesLogger

Bases: object

Tracing utilities for pymccool

pymccool.tracing.get_decorator(tracer: Tracer)

Given a Tracer object, return a decorator

pymccool.tracing.get_tracer(service_name: str = 'DefaultServiceName', endpoint: str = 'localhost:4317', uuid: UUID = None, otlp: bool = True) Tracer

Creates a tracer with the given service name

pymccool.tracing.instrument_with(func: Callable[[...], Any], tracer: Tracer) Callable[[...], Any]

decorator used to create trace info for function calls