Library#

Important

Imports pyrolog.group, pyrolog.logger, pyrolg.logging_context, pyrolog.handlers, pyrolog.formatters, pyrolog.version, pyrolog.colors must be used without the .group, .logger, .logging_context, etc. prefixes if you use import pyrolog. These modules imports as from .MOD import *.

Other modules: pyrolog.defaults, pyrolog.types, pyrolog.utils, pyrolog. empty_colors must be imported as is.

pyrolog#

Pyrolog. Pretty logging library. Copyright (C) 2023 ftdot (https://github.com/ftdot)

pyrolog.get_plain_logger(log_level: str | int | LogOnlyLevels = 'info')#

Gets logger (unnamed) with StdoutHandler and plain formatter. Also, uses given log level.

Parameters:

log_level (types.LogLevel) – Log level

pyrolog.get_colored_logger(log_level: str | int | LogOnlyLevels = 'info')#

Gets logger (unnamed) with StdoutHandler and colored formatter. Also, uses given log level.

Parameters:

log_level (types.LogLevel) – Log level

pyrolog.version#

This module contains version information of the library.

Important

Due to the library’s import system, if you import pyrolog by this code:

import pyrolog

You must use this as:

pyrolog.__version__

As example.

Also, VersionInfo isn’t imports by default. You can’t use it with code like this:

pyrolog.VersionInfo

See below for details how to use it, if you really want this.

pyrolog.version.VersionInfo = <class 'pyrolog.version.VersionInfo'>#

Named tuple type.

Warning

This isn’t imports by default! You can import this by using this code:

from pyrolog.version import VersionInfo
pyrolog.version.__version__ = '2.2.1'#

String with the current version of the library

pyrolog.version.__version_tuple__ = (2, 2, 1)#

Tuple with the current version of the library

pyrolog.version.__version_info__ = (2, 2, 1, 'beta', '50f233c')#

Named tuple with the current version + technical details of the library release

pyrolog.logging_context#

Dedicated module for the LoggingContext class.

Important

Due to the library’s import system, if you import pyrolog by this code:

import pyrolog

You must use this as:

pyrolog.LoggingContext

As example.

class pyrolog.logging_context.LoggingContext(log_levels: dict[str, int])#

Bases: object

Defines some variables that is “unique” for every logging context.

Variables:
  • log_levels – Dict with the registered log levels.

  • loggers – List with the loggers pinned to logging context instance.

  • groups – List with the groups pinned to logging context instance.

  • groups_by_name – Dictionary with groups with names as keys.

__init__(log_levels: dict[str, int])#
Parameters:

log_levels (LogLevelDict) – Dict with the registered log levels.

enable_all_loggers()#

Enables all loggers pinned to the logging context.

disable_all_loggers()#

Disables all loggers pinned to the logging context.

enable_all_groups()#

Enables all groups pinned to the logging context.

disable_all_groups()#

Disables all groups pinned to the logging context.

get_level_offset()#
get_logger_name_offset()#
get_group_name_offset()#
log_level(level: str | int | LogOnlyLevels, context_level: str | int)#

pyrolog.group#

Dedicated module for Group class.

Important

Due to the library’s import system, if you import pyrolog by this code:

import pyrolog

You must use this as:

pyrolog.Group

As example.

class pyrolog.group.Group(name: str = '', handlers: ~pyrolog.handlers.Handler | list[~pyrolog.handlers.Handler] | None = None, logging_context: ~pyrolog.logging_context.LoggingContext = <pyrolog.logging_context.LoggingContext object>, group_color: str = '', enabled: bool = True, parent_group: ~pyrolog.group.Group | str | None = None)#

Bases: object

A group class, that very helpful if you use many loggers in your project.

Variables:
  • name – Name of the group.

  • handlers – Handlers to be used by loggers.

  • logging_context – The current logging context. (by default is defaults.DEFAULT_LOGGING_CONTEXT of pyrolog.defaults module)

  • group_color – Color of the group. (visible only by using ColoredFormatter)

  • enabled – If it is set to False, all pinned loggers will not log any messages and all subgroups pinned to will be disabled. Do not change it manually, use Group.disable() and Group.enable().

  • parent_group – Parent group of this group.

  • subgroups – Subgroups of this group.

  • loggers – Loggers pinned to this group.

__init__(name: str = '', handlers: ~pyrolog.handlers.Handler | list[~pyrolog.handlers.Handler] | None = None, logging_context: ~pyrolog.logging_context.LoggingContext = <pyrolog.logging_context.LoggingContext object>, group_color: str = '', enabled: bool = True, parent_group: ~pyrolog.group.Group | str | None = None)#
Parameters:
  • name (str) – Name of the group.

  • handlers (Handler | list[Handler] | None) – Handlers to be used by loggers.

  • logging_context (LoggingContext) – The current logging context. (by default is defaults.DEFAULT_LOGGING_CONTEXT)

  • group_color (str) – Color of the group. (visible only by using ColoredFormatter)

  • enabled (bool) – If it is set to False, all pinned loggers will not log any messages and all subgroups pinned to will be disabled.

  • parent_group (Group | str | None) – Parent of this group. If it is not None, then copies all parameters from that group.

enable()#

Enables this group and all pinned loggers and subgroups.

disable()#

Enables this group and all pinned loggers and subgroups.

subgroup(*args, **kwargs)#

Alternative constructor of the Group. But with “parent_group” set to exist instance. This method is shorthand for Group(…, parent_group=self). All arguments passed to this function is passed to the constructor of the group.

Example:

example_group      = pyrolog.Group('ExampleGroup', handlers=[..., ])
example_sub_group  = example_group.subgroup()
example_logger     = example_group.group(name='ExampleLogger', group_color=pyrolog.TextColor.red)
logger(*args, **kwargs)#

Alternative constructor of the Logger. But with “group” set to exist instance. This method is shorthand for Logger(…, group=self). All arguments passed to this function is passed to the constructor of the logger.

Example:

example_group   = pyrolog.Group('ExampleGroup', handlers=[..., ])
example_logger  = example_group.logger(name='ExampleLogger', logger_color=pyrolog.TextColor.cyan)

pyrolog.logger#

Dedicated module for the Logger class.

Important

Due to the library’s import system, if you import pyrolog by this code:

import pyrolog

You must use this as:

pyrolog.Logger

As example.

class pyrolog.logger.Logger(name: str = '', handlers: ~pyrolog.handlers.Handler | list[~pyrolog.handlers.Handler] | None = None, logging_context: ~pyrolog.logging_context.LoggingContext = <pyrolog.logging_context.LoggingContext object>, logger_color: str = '', group: Group | str | None = None, enabled: bool = True)#

Bases: object

A logger object.

Variables:
  • name – Name of the logger.

  • handlers – Handlers to be used by logger.

  • logging_context – The current logging context. (by default is defaults.DEFAULT_LOGGING_CONTEXT)

__init__(name: str = '', handlers: ~pyrolog.handlers.Handler | list[~pyrolog.handlers.Handler] | None = None, logging_context: ~pyrolog.logging_context.LoggingContext = <pyrolog.logging_context.LoggingContext object>, logger_color: str = '', group: Group | str | None = None, enabled: bool = True)#

Creates a new Logger object.

Parameters:
  • name (str | None) – Name of the logger. (by default it is empty)

  • handlers (Handler | list[Handler] | None) – Handlers to be used by logger.

  • logging_context (LoggingContext) – The current logging context. (by default is defaults.DEFAULT_LOGGING_CONTEXT)

  • logger_color (str) – Color of the logger. (visible only by using ColoredFormatter)

  • group (Group | str | None) – Group of the logger. If it is not None, then copies all parameters from that group.

  • enabled (bool) – If it is set to False, logger will not log any messages.

to_group(group: Group | str)#

Moves logger to the given group.

Parameters:

group (Group | str) – Group where be placed logger.

set_level(level: str | int | LogOnlyLevels)#

Sets given log level to all handlers.

Parameters:

level (LogLevel) – Log level.

add_handler(handler: Handler)#

Adds a new handler to the logger.

Parameters:

handler (Handler) – New handler to be added.

remove_handler(handler: Handler)#

Removes handler from the logger. Ignores if handler isn’t used in logger.

Parameters:

handler (Handler) – Handler to be removed.

enable()#

Enables a logger.

disable()#

Disables a logger.

record(message: str, level: str | int, *args: Any, exc: Exception | None = None, **kwargs: dict[str, Any])#

Records a message at the specified logging level.

Parameters:
  • message (str) – Message to be logged.

  • level – Logged level.

  • args (Any) – Positioned arguments for formatting.

  • exc (Exception) – Exception to pin with log message.

  • kwargs (dict[str, Any]) – Named arguments for formatting.

static bind_log_methods()#

Binds all log methods for the Logger object instance.

debug(message: str, *args, exc: Exception | None = None, **kwargs)#
exception(message: str, *args, exc: Exception | None = None, **kwargs)#
info(message: str, *args, exc: Exception | None = None, **kwargs)#
warn(message: str, *args, exc: Exception | None = None, **kwargs)#
error(message: str, *args, exc: Exception | None = None, **kwargs)#
critical(message: str, *args, exc: Exception | None = None, **kwargs)#
notset(message: str, *args, exc: Exception | None = None, **kwargs)#

pyrolog.handlers#

Module that defines a base of the handlers and all the library handlers.

Important

Due to the library’s import system, if you import pyrolog by this code:

import pyrolog

You must use this as:

pyrolog.StdoutHandler

As example.

class pyrolog.handlers.Handler(log_level: str | int | ~pyrolog._types.LogOnlyLevels = 'info', formatter: ~pyrolog.formatters.Formatter = <pyrolog.formatters.PlainFormatter object>, logging_context: ~pyrolog.logging_context.LoggingContext = <pyrolog.logging_context.LoggingContext object>, log_exceptions: bool = True, enabled: bool = True)#

Bases: object

A base of all the handlers.

Variables:
  • log_level – Log level.

  • formatter – Formatter that will use this handler.

  • logging_context – Logging context.

  • log_exceptions – Determines whether log exceptions or not.

  • enabled – Determines whether log any message or not. Isn’t recommended to change it manually, but you may. Is recommended to use enable() and disable() methods.

__init__(log_level: str | int | ~pyrolog._types.LogOnlyLevels = 'info', formatter: ~pyrolog.formatters.Formatter = <pyrolog.formatters.PlainFormatter object>, logging_context: ~pyrolog.logging_context.LoggingContext = <pyrolog.logging_context.LoggingContext object>, log_exceptions: bool = True, enabled: bool = True)#
Parameters:
  • log_level (LogLevel) – Log level.

  • formatter (Formatter) – Formatter that will use this handler.

  • logging_context (LoggingContext) – Logging context.

  • log_exceptions (bool) – Determines whether log exceptions or not.

  • enabled (bool) – Determines whether log any message or not.

enable()#

Enables handler.

disable()#

Disables handler.

abstract write(message: str, level: str | int, logger_color: str, logger_name: str, group_name: str, group_color: str, exc: Exception | None = None, time: datetime | None = None, fmt_args: list[Any] | None = None, fmt_kwargs: dict[str, Any] | None = None)#
class pyrolog.handlers.IOHandler(io: TextIO, *args: Any, **kwargs: dict[str, Any])#

Bases: Handler

A base of IO handlers.

Variables:

io – IO to be used to write messages.

__init__(io: TextIO, *args: Any, **kwargs: dict[str, Any])#
Parameters:

io (TextIO) – IO to be used to write messages.

write(message: str, level: str | int, logger_color: str, logger_name: str, group_name: str, group_color: str, exc: Exception | None = None, time: datetime | None = None, fmt_args: list[Any] | None = None, fmt_kwargs: dict[str, Any] | None = None)#
set_level(level: str | int | LogOnlyLevels)#

Sets log level of handler to given.

Parameters:

level (LogLevel) – Log level.

class pyrolog.handlers.StdoutHandler(*args: Any, **kwargs: dict[str, Any])#

Bases: IOHandler

Handles stdout output (console). This class is shorthand for IOHandler(sys.stdout, …).

__init__(*args: Any, **kwargs: dict[str, Any])#
Parameters:

io (TextIO) – IO to be used to write messages.

class pyrolog.handlers.StderrHandler(*args: Any, **kwargs: dict[str, Any])#

Bases: IOHandler

Handles stderr output (console). This class is shorthand for IOHandler(sys.stdout, …).

__init__(*args: Any, **kwargs: dict[str, Any])#
Parameters:

io (TextIO) – IO to be used to write messages.

class pyrolog.handlers.FileHandler(path: str | bytes | PathLike[str] | PathLike[bytes] | int, encoding: str = 'utf8', *args: Any, **kwargs: dict[str, Any])#

Bases: IOHandler

Handles file output.

Variables:
  • file_io – Opened file object.

  • path – Path to the file.

  • encoding – Encoding, by default is the UTF-8.

__init__(path: str | bytes | PathLike[str] | PathLike[bytes] | int, encoding: str = 'utf8', *args: Any, **kwargs: dict[str, Any])#
Parameters:
  • path (str | bytes | PathLike[str] | PathLike[bytes] | int) – Path to the file.

  • encoding (str) – Encoding, by default is the UTF-8.

pyrolog.formatters#

Contains base of formatters and all defined in the library formatters.

Important

Due to the library’s import system, if you import pyrolog by this code:

import pyrolog

You must use this as:

pyrolog.PlainFormatter

As example.

pyrolog.formatters.fmt#

Special type to specify formatting in ColoredFormatter use case.

class pyrolog.formatters.Uncolored(value: Any)#

Bases: object

Used in context where required to log an object to the ColoredFormatter without colors.

Variables:

value – Original value.

__init__(value: Any)#
Parameters:

value – Any value you want to pass to the ColoredFormatter without colors.

class pyrolog.formatters.Formatter(format_string: str = '{level:<{level_offset}} {message}', time_format_string: str = '{hour:02d}:{minute:02d}:{second:02d}.{microsecond}', static_variables: dict[str, ~typing.Any] | None = None, logging_context: ~pyrolog.logging_context.LoggingContext = <pyrolog.logging_context.LoggingContext object>)#

Bases: object

A base of all the formatters.

Variables:
  • format_string – Format string.

  • time_format_string – Format string of the time.

  • static_variables – Static variables. (can be used in messages)

  • logging_context – Logging context.

  • time_formatting – (System variable. Do not change it manually) Determines whether to spend time formatting time.

__init__(format_string: str = '{level:<{level_offset}} {message}', time_format_string: str = '{hour:02d}:{minute:02d}:{second:02d}.{microsecond}', static_variables: dict[str, ~typing.Any] | None = None, logging_context: ~pyrolog.logging_context.LoggingContext = <pyrolog.logging_context.LoggingContext object>)#
Parameters:
  • format_string (str) – Format string.

  • time_format_string (str) – Format string of the time.

  • static_variables (VarDict | None) – Static variables. (can be used in messages)

  • logging_context (LoggingContext) – Logging context.

property format_string#
add_static_variable(name: str, value: Any)#

Adds static variable.

Parameters:
  • name (str) – Name of the static variable.

  • value (Any) – Value of the static variable.

del_static_variable(name: str) bool#

Deletes static variable.

Parameters:

name (str) – Name of the static variable to be deleted.

abstract format(message: str, time: datetime | None, level: str, logger_color: str, logger_name: str, group_name: str, group_color: str, fmt_args: list[Any], fmt_kwargs: dict[str, Any])#
abstract format_exception(exc: Exception)#
abstract format_time(time: datetime | None)#
class pyrolog.formatters.PlainFormatter(*args: Any, offsets: bool = True, **kwargs: dict[str, Any])#

Bases: Formatter

Plain formatter with offsets support.

Variables:

offsets – Determines whether to use offsets or not.

__init__(*args: Any, offsets: bool = True, **kwargs: dict[str, Any])#
Parameters:

offsets (bool) – If True, format string can use offsets to prettify output.

format_message(message: str, level: str, logger_color: str, logger_name: str, group_name: str, group_color: str, fmt_args: list[Any], fmt_kwargs: dict[str, Any])#
format(message: str, time: datetime | None, level: str, logger_color: str, logger_name: str, group_name: str, group_color: str, fmt_args: list[Any], fmt_kwargs: dict[str, Any])#
format_exception(exc: Exception)#
format_time(time: datetime | None)#
class pyrolog.formatters.ColoredFormatter(format_string: str = '{level_color}{level:<{level_offset}}{reset} {message}', time_format_string: str = '{fore.cyan}{hour:02d}{fore.reset}:{fore.cyan}{minute:02d}{fore.reset}:{fore.cyan}{second:02d}{fore.reset}.{fore.lightmagenta}{microsecond}{fore.reset}', *args: ~typing.Any, color_dict: dict[~typing.Literal['types'] | ~typing.Literal['levels'], dict[str | type, ~typing.Any]] = {'levels': {'critical': '\x1b[31m\x1b[1m', 'debug': '\x1b[97m', 'error': '\x1b[91m', 'exception': '\x1b[93m', 'info': '\x1b[96m', 'warn': '\x1b[33m'}, 'types': {'all': '\x1b[96m\x1b[1m', 'exception': '\x1b[91m', <class 'bool'>: '\x1b[33m', <class 'bytes'>: '\x1b[91m\x1b[1m', <class 'dict'>: '\x1b[36m', <class 'float'>: '\x1b[95m\x1b[1m', <class 'int'>: '\x1b[95m', <class 'list'>: '\x1b[93m', <class 'str'>: '\x1b[92m', <class 'tuple'>: '\x1b[93m\x1b[1m'}}, use_repr: bool = False, **kwargs: dict[str, ~typing.Any])#

Bases: PlainFormatter

Colored formatter.

Variables:
  • color_dict – Dict with the colors used to color formatting arguments by its type.

  • use_repr – If it set to True, repr() will be used instead of str() while format arguments.

__init__(format_string: str = '{level_color}{level:<{level_offset}}{reset} {message}', time_format_string: str = '{fore.cyan}{hour:02d}{fore.reset}:{fore.cyan}{minute:02d}{fore.reset}:{fore.cyan}{second:02d}{fore.reset}.{fore.lightmagenta}{microsecond}{fore.reset}', *args: ~typing.Any, color_dict: dict[~typing.Literal['types'] | ~typing.Literal['levels'], dict[str | type, ~typing.Any]] = {'levels': {'critical': '\x1b[31m\x1b[1m', 'debug': '\x1b[97m', 'error': '\x1b[91m', 'exception': '\x1b[93m', 'info': '\x1b[96m', 'warn': '\x1b[33m'}, 'types': {'all': '\x1b[96m\x1b[1m', 'exception': '\x1b[91m', <class 'bool'>: '\x1b[33m', <class 'bytes'>: '\x1b[91m\x1b[1m', <class 'dict'>: '\x1b[36m', <class 'float'>: '\x1b[95m\x1b[1m', <class 'int'>: '\x1b[95m', <class 'list'>: '\x1b[93m', <class 'str'>: '\x1b[92m', <class 'tuple'>: '\x1b[93m\x1b[1m'}}, use_repr: bool = False, **kwargs: dict[str, ~typing.Any])#
Parameters:
  • format_string (str) – Format string.

  • time_format_string (str) – Format string of the time.

  • color_dict (ColorDict) – Dict with the colors used to color formatting arguments by its type.

  • use_repr (bool) – If it set to True, repr() will be used instead of str() while format arguments.

get_level_color(level: str) str#
get_value_color(type_: type) str#
format_value(value: Any) str#
format_message(message: str, level: str, level_color: str, logger_color: str, logger_name: str, group_name: str, group_color: str, fmt_args: list[Any], fmt_kwargs: dict[str, Any]) str#
format(message: str, time: datetime | None, level: str, logger_color: str, logger_name: str, group_name: str, group_color: str, fmt_args: list[Any], fmt_kwargs: dict[str, Any]) str#
format_exception(exc: Exception)#
format_time(time: datetime | None)#

pyrolog.utils#

This module contains utilities of the library.

Important

Due to the library’s import system, if you import pyrolog by this code:

import pyrolog

You must use this as:

pyrolog.utils.make_new_log_level(...)

As example.

pyrolog.utils.make_logger_binding(level: str) Callable#

Makes function-bind for given level.

Parameters:

level (str) – Level.

Returns:

Function-bind for given level.

Return type:

Callable

pyrolog.utils.make_new_log_level(logger_class: Logger, name: str, level: int, logging_context: ~pyrolog.logging_context.LoggingContext = <pyrolog.logging_context.LoggingContext object>)#

Makes new log level and function-bind for it. Also adds function-bind to Logger class. Note that name will be converted to lower case!

Parameters:
  • logger_class (Logger) – Class of the logger.

  • name (str) – Name of the new log level.

  • level (int) – Int level of the new log level.

  • logging_context (LoggingContext) – Logging context where it will be registered.

pyrolog.utils.update_logger_name_offset(logging_context: ~pyrolog.logging_context.LoggingContext = <pyrolog.logging_context.LoggingContext object>)#

Updates logger name offset.

Parameters:

logging_context (LoggingContext) – Current logging context.

pyrolog.utils.update_group_name_offset(logging_context: ~pyrolog.logging_context.LoggingContext = <pyrolog.logging_context.LoggingContext object>)#

Updates group name offset.

Parameters:

logging_context (LoggingContext) – Current logging context.

pyrolog.utils.get_filename_timestamp(format_string='{year:04d}_{month:02d}_{day:02d}-{hour:02d}_{minute:02d}_{second:02d}_{microsecond}.log')#

Makes pretty filename with time and “.log” extension.

Parameters:

format_string (str) – Format string.

pyrolog._types#

This module defines types of the library.

Important

Due to the library’s import system, if you import pyrolog by this code:

import pyrolog

You must use this as:

pyrolog.types.ColorDict

As example.

But, you can use LogOnlyLevels as following code:

pyrolog.LogOnlyLevels
class pyrolog._types.LogOnlyLevels(levels: str | list[str])#

Bases: object

A class that allows you to fine-tune the desired logging levels.

Variables:

levels – Levels to be logged.

__init__(levels: str | list[str])#

Determines which level(s) will be logged and which not.

Example usage:

import pyrolog
stdout_handler = pyrolog.StdoutHandler(
    log_level=pyrolog.LogOnlyLevels(
        ['debug', 'info', 'warn']
    ),
    formatter=pyrolog.PlainFormatter()
)
stderr_handler = pyrolog.StderrHandler(
    log_level=pyrolog.LogOnlyLevels(
        ['exception', 'error', 'critical']
    ),
    formatter=pyrolog.PlainFormatter()
)

When using this handler, only the specified levels will be logged.

Parameters:

levels (str | list[str]) – Level(s) to be logged only.

log_level(level: str) bool#

Checks if level is allowed to log.

Parameters:

level (str) – Level to check.

Returns:

True if level is allowed to log, otherwise False be returned.

Return type:

bool

pyrolog.colors#

Contains the color bindings to the colorama library.

Important

Due to the library’s import system, if you import pyrolog by this code:

import pyrolog

You must use this as:

pyrolog.TextColor

As example.

class pyrolog.colors.TextColor#

Bases: object

Bindings to colorama Fore colors.

reset = '\x1b[39m'#
black = '\x1b[30m'#
red = '\x1b[31m'#
green = '\x1b[32m'#
blue = '\x1b[34m'#
cyan = '\x1b[36m'#
yellow = '\x1b[33m'#
magenta = '\x1b[35m'#
white = '\x1b[37m'#
lightblack = '\x1b[90m'#
lightred = '\x1b[91m'#
lightgreen = '\x1b[92m'#
lightblue = '\x1b[94m'#
lightcyan = '\x1b[96m'#
lightyellow = '\x1b[93m'#
lightmagenta = '\x1b[95m'#
lightwhite = '\x1b[97m'#
class pyrolog.colors.BGColor#

Bases: object

Bindings to colorama Back colors.

reset = '\x1b[49m'#
black = '\x1b[40m'#
red = '\x1b[41m'#
green = '\x1b[42m'#
blue = '\x1b[44m'#
cyan = '\x1b[46m'#
yellow = '\x1b[43m'#
magenta = '\x1b[45m'#
white = '\x1b[47m'#
lightblack = '\x1b[100m'#
lightred = '\x1b[101m'#
lightgreen = '\x1b[102m'#
lightblue = '\x1b[104m'#
lightcyan = '\x1b[106m'#
lightyellow = '\x1b[103m'#
lightmagenta = '\x1b[105m'#
lightwhite = '\x1b[107m'#
class pyrolog.colors.TextStyle#

Bases: object

Bindings to colorama Style.

reset = '\x1b[0m'#
dim = '\x1b[2m'#
bold = '\x1b[1m'#
normal = '\x1b[22m'#

pyrolog.empty_colors#

Contains empty version of the color bindings of the colorama library. See pyrolog.colors.

Important

Due to the library’s import system, if you import pyrolog by this code:

import pyrolog

You must use this as:

pyrolog.empty_colors.EmptyTextColor

As example.

class pyrolog.empty_colors.EmptyTextColor#

Bases: object

Empty variant of pyrolog.TextColor.

reset = ''#
black = ''#
red = ''#
green = ''#
blue = ''#
cyan = ''#
yellow = ''#
magenta = ''#
white = ''#
lightblack = ''#
lightred = ''#
lightgreen = ''#
lightblue = ''#
lightcyan = ''#
lightyellow = ''#
lightmagenta = ''#
lightwhite = ''#
class pyrolog.empty_colors.EmptyBGColor#

Bases: object

Empty variant of pyrolog.BGColor.

reset = ''#
black = ''#
red = ''#
green = ''#
blue = ''#
cyan = ''#
yellow = ''#
magenta = ''#
white = ''#
lightblack = ''#
lightred = ''#
lightgreen = ''#
lightblue = ''#
lightcyan = ''#
lightyellow = ''#
lightmagenta = ''#
lightwhite = ''#
class pyrolog.empty_colors.EmptyTextStyle#

Bases: object

Empty variant of pyrolog.TextStyle.

reset = ''#
dim = ''#
bold = ''#
normal = ''#

pyrolog.defaults#

Module with the default definitions of library.

Important

Due to the library’s import system, if you import pyrolog by this code:

import pyrolog

You must use this as:

pyrolog.defaults.DEFAULT_LOG_LEVELS

As example.

pyrolog.defaults.DEFAULT_LOG_LEVELS = {'critical': 30, 'debug': 5, 'error': 25, 'exception': 10, 'info': 15, 'notset': 9999, 'warn': 20}#

The default log levels dictionary.

pyrolog.defaults.MINIMAL_FORMAT_STRING = '{level:<{level_offset}} {message}'#

The minimal formatter specification, which is the default and recommended for small projects.

pyrolog.defaults.TIMED_MINIMAL_FORMAT_STRING = '{time} {level:<{level_offset}} {message}'#

The minimal formatter specification, but with specified time.

pyrolog.defaults.MINIMAL_TIME_FORMAT_STRING = '{hour:02d}:{minute:02d}:{second:02d}.{microsecond}'#

The default minimal time format specification.

pyrolog.defaults.MAXIMUM_TIME_FORMAT_STRING = '{year:04d}.{month:02d}.{day:02d} {hour:02d}:{minute:02d}:{second:02d}.{microsecond}'#

Time Format specification that is recommended for professional, large projects.

pyrolog.defaults.MAXIMUM_TIME_FORMAT_STRING_FILENAME_SAFE = '{year:04d}_{month:02d}_{day:02d}-{hour:02d}_{minute:02d}_{second:02d}_{microsecond}'#

Time Format specification that is recommended for filename of the log files.

pyrolog.defaults.MAXIMUM_FORMAT_STRING = '{time} | {level:<{level_offset}} | {group_name:<{group_name_offset}} | {logger_name:<{logger_name_offset}} -> {message}'#

Format specification that is recommended for professional, large projects.

pyrolog.defaults.DEFAULT_LOGGING_CONTEXT = <pyrolog.logging_context.LoggingContext object>#

The logging context that is used by all elements of the logging library by default.

pyrolog.defaults.DEFAULT_COLOR_DICT = {'levels': {'critical': '\x1b[31m\x1b[1m', 'debug': '\x1b[97m', 'error': '\x1b[91m', 'exception': '\x1b[93m', 'info': '\x1b[96m', 'warn': '\x1b[33m'}, 'types': {'all': '\x1b[96m\x1b[1m', 'exception': '\x1b[91m', <class 'bool'>: '\x1b[33m', <class 'bytes'>: '\x1b[91m\x1b[1m', <class 'dict'>: '\x1b[36m', <class 'float'>: '\x1b[95m\x1b[1m', <class 'int'>: '\x1b[95m', <class 'list'>: '\x1b[93m', <class 'str'>: '\x1b[92m', <class 'tuple'>: '\x1b[93m\x1b[1m'}}#

The default color dict that is used by ColoredFormatter

pyrolog.defaults.COLORED_MINIMAL_FORMAT_STRING = '{level_color}{level:<{level_offset}}{reset} {message}'#

The colored minimal formatter specification, which is the default for the colored formatter and recommended for small projects.

pyrolog.defaults.COLORED_TIMED_MINIMAL_FORMAT_STRING = '{time} {level_color}{level:<{level_offset}}{reset} {message}'#

The minimal colored formatter specification, but with specified time.

pyrolog.defaults.COLORED_MINIMAL_TIME_FORMAT_STRING = '{fore.cyan}{hour:02d}{fore.reset}:{fore.cyan}{minute:02d}{fore.reset}:{fore.cyan}{second:02d}{fore.reset}.{fore.lightmagenta}{microsecond}{fore.reset}'#

The default colored minimal time format specification.

pyrolog.defaults.COLORED_MAXIMUM_TIME_FORMAT_STRING = '{fore.cyan}{year:04d}{fore.reset}.{fore.cyan}{month:02d}{fore.reset}.{fore.cyan}{day:02d}{fore.reset} {fore.cyan}{hour:02d}{fore.reset}:{fore.cyan}{minute:02d}{fore.reset}:{fore.cyan}{second:02d}{fore.reset}.{fore.lightmagenta}{microsecond}{fore.reset}'#

Colored time format specification that is recommended for professional, large projects.

pyrolog.defaults.COLORED_MAXIMUM_FORMAT_STRING = '{time} | {level_color}{level:<{level_offset}}{reset} | {group_color}{group_name:<{group_name_offset}}{reset} | {logger_color}{logger_name:<{logger_name_offset}}{reset} -> {message}'#

Colored format specification that is recommended for professional, large projects.