jgdv.logging.logger_spec

Classes

HandlerBuilder_m

Loggerspec Mixin for building handlers

LoggerSpec

A Spec for toml defined logging control.

Module Contents

class jgdv.logging.logger_spec.HandlerBuilder_m[source]

Loggerspec Mixin for building handlers

_build_errorhandler() <Unknown>[source]
Return type:

jgdv.logging._interface.Handler

_build_filehandler(path) <Unknown>[source]
Parameters:

path (pathlib.Path)

Return type:

jgdv.logging._interface.Handler

_build_filters() <Unknown>[source]
Return type:

list[collections.abc.Callable]

_build_formatter(handler) <Unknown>[source]
Parameters:

handler (jgdv.logging._interface.Handler)

Return type:

jgdv.logging._interface.Formatter

_build_rotatinghandler(path) <Unknown>[source]
Parameters:

path (pathlib.Path)

Return type:

jgdv.logging._interface.Handler

_build_streamhandler() <Unknown>[source]
Return type:

jgdv.logging._interface.Handler

_discriminate_handler(target) <Unknown>[source]
Parameters:

target (jgdv.Maybe[str | pathlib.Path])

Return type:

tuple[jgdv.Maybe[jgdv.logging._interface.Handler], jgdv.Maybe[jgdv.logging._interface.Formatter]]

class jgdv.logging.logger_spec.LoggerSpec(/, **data)[source]

Bases: HandlerBuilder_m, pydantic.BaseModel

A Spec for toml defined logging control. Allows user to name a logger, set its level, format, filters, colour, and what (cli arg) verbosity it activates on, and what file it logs to.

When ‘apply’ is called, it gets the logger, and sets any relevant settings on it.

Parameters:

data (Any)

_validate_format(val) <Unknown>[source]
Parameters:

val (str)

Return type:

str

_validate_level(val) <Unknown>[source]
Parameters:

val (str | int)

Return type:

int

_validate_style(val) <Unknown>[source]
Parameters:

val (str)

Return type:

str

_validate_target(val) <Unknown>[source]
Parameters:

val (list | str | pathlib.Path)

Return type:

list[str | pathlib.Path]

apply(*, onto=None) <Unknown>[source]

Apply this spec (and nested specs) to the relevant logger

Parameters:

onto (jgdv.Maybe[jgdv.logging._interface.Logger])

Return type:

jgdv.logging._interface.Logger

static build(data, **kwargs) <Unknown>[source]

Build a single spec, or multiple logger specs targeting the same logger

Parameters:
Return type:

LoggerSpec

clear() <Unknown>[source]

Clear the handlers for the logger referenced

Return type:

None

fullname() <Unknown>[source]
Return type:

str

get() <Unknown>[source]

Get the logger this spec controls

Return type:

jgdv.logging._interface.Logger

logfile() <Unknown>[source]
Return type:

pathlib.Path

set_level(level) <Unknown>[source]
Parameters:

level (int | str)

Return type:

None

RootName: ClassVar[str] = 'root'
_applied: bool = False
_logger: jgdv.Maybe[jgdv.logging._interface.Logger] = None
allow: list[str] = []
base: jgdv.Maybe[str] = None
clear_handlers: bool = False
colour: bool | str = False
disabled: bool = False
filename_fmt: str = '%Y-%m-%d::%H:%M.log'
filter: list[str] = []
format: str = '{levelname:<8} : {message}'
level: str | int = 30
levels: ClassVar[type[enum.IntEnum]]
name: str
nested: list[LoggerSpec] = []
prefix: jgdv.Maybe[str] = None
propagate: bool = False
style: str = '{'
target: list[str | pathlib.Path] = []
verbosity: int = 0