morphfits.utils.logs#

Logging setup and utility functions.

Attributes#

LOGGER_MAX_BYTES

Default maximum bytes to be stored in each log file.

LOGGER_BACKUP_COUNT

Default number of log files before rotation.

LOGGING_DATE_FORMAT

Default logging date format, in ISO-8601 compliant format, e.g.

LOGGING_COLOUR_ESCAPES

Colour codes for terminal.

Classes#

UTCFormatter

Logging formatter which uses GMT (UTC).

FileFormatter

Logfile formatter which uses UTC.

StreamFormatter

Stream log formatter which uses UTC.

Functions#

resolve_record_name(→ str)

Resolve a log record's module name to a more legible name, if it wasn't

create_logger(, filename, level, max_bytes, backup_count)

Create or update a logger object with a rotating file and stream handler.

Module Contents#

morphfits.utils.logs.LOGGER_MAX_BYTES = 1000000#

Default maximum bytes to be stored in each log file.

morphfits.utils.logs.LOGGER_BACKUP_COUNT = 100#

Default number of log files before rotation.

morphfits.utils.logs.LOGGING_DATE_FORMAT = '%Y-%m-%dT%H:%M:%S'#

Default logging date format, in ISO-8601 compliant format, e.g. 2024-05-01T12:43:21.

morphfits.utils.logs.LOGGING_COLOUR_ESCAPES#

Colour codes for terminal.

morphfits.utils.logs.resolve_record_name(name: str) str#

Resolve a log record’s module name to a more legible name, if it wasn’t already.

Parameters:

name (str) – Record module name, e.g. tqdm.tqdm.

Returns:

Legible record name.

Return type:

str

class morphfits.utils.logs.UTCFormatter(datefmt: str = LOGGING_DATE_FORMAT)#

Bases: logging.Formatter

Logging formatter which uses GMT (UTC).

Parameters:

logging.Formatter (class) – Base formatter class to convert log records to text.

converter#

Time converter.

Type:

function

converter#
class morphfits.utils.logs.FileFormatter(datefmt: str = LOGGING_DATE_FORMAT)#

Bases: UTCFormatter

Logfile formatter which uses UTC.

Parameters:

UTCFormatter (class) – Base formatter class which uses UTC time.

format(record: logging.LogRecord) str#

Format a log record as a str.

Parameters:

record (logging.LogRecord) – Log record to format (line in log).

Returns:

Formatted log record.

Return type:

str

class morphfits.utils.logs.StreamFormatter(datefmt: str = LOGGING_DATE_FORMAT)#

Bases: UTCFormatter

Stream log formatter which uses UTC.

Parameters:

UTCFormatter (class) – Base formatter class which uses UTC time.

format(record: logging.LogRecord) str#

Format a log record as a coloured str for display.

Parameters:

record (logging.LogRecord) – Log record to format (line in log).

Returns:

Formatted log record.

Return type:

str

morphfits.utils.logs.create_logger(logger: logging.Logger = logging.getLogger(), filename: str | pathlib.Path = '.log', level: str = logging._levelToName[DEBUG], max_bytes: int = LOGGER_MAX_BYTES, backup_count: int = LOGGER_BACKUP_COUNT) logging.Logger#

Create or update a logger object with a rotating file and stream handler.

Parameters:
  • logger (Logger, optional) – Logger object to create or update, by default a new logger.

  • filename (str | Path, optional) – Name or path to file to log to, by default .log.

  • level (str, optional) – Logging level to output, by default WARNING.

  • max_bytes (int, optional) – Maximum bytes to be stored in each log file, by default 1,000,000.

  • backup_count (int, optional) – Count of log files before rotation (first one is overwritten with new data), by default 4.

Returns:

Logger object for this program.

Return type:

Logger