logseg

Submodules

Attributes

Classes

LoggerManager

This class manages the logger thread.

Functions

logger_init(→ LoggerManager)

This function initializes a logger as well as a thread to process logs produced by concurrent processes. Logs

get_logger(→ logging.Logger)

This function gets a logger instance.

Package Contents

logseg.logger_init(config_file: pathlib.Path | str = None) LoggerManager

This function initializes a logger as well as a thread to process logs produced by concurrent processes. Logs from concurrent processes should be passed through the multiprocessing queue stored in log.globals.logger_queue.

Parameters:
  • config_file – A path to a configuration file containing a LOGSEG section. If not provided, the default

  • file. (configuration will be used. See the documentation for an example configuration)

Returns:

A LoggerManager instance which can be used to terminate the logger thread at cleanup time.

logseg.get_logger(name: str, queue: multiprocessing.queues.Queue | None = None) logging.Logger

This function gets a logger instance.

Setup

from logseg import LoggerManager
from logseg import logger_init

logger_manager: LoggerManager = logger_init()

Without multiprocessing

from logseg import get_logger

logger = get_logger(__name__)
logger.info('your message')

With multiprocessing

import multiprocessing as mp
import log.globals

def my_function(queue: mp.Queue, parameter: str):
    logger = get_logger(__name__, queue)
    logger.info(f'Your message: {parameter}')

pool = mp.Pool(processes=mp.cpu_count())
pool.imap_unordered(func=partial(
    my_function,
    queue=log.globals.logger_queue,
    parameter='example'
))
pool.close()
pool.join()

Shutdown

logger_manager.terminate_logger()
Parameters:
  • name – The name for the logger.

  • queue – A Queue instance generated by logger_init(), held in the variable log.globals.logger_queue

Returns:

A logseg logger instance.

class logseg.LoggerManager(logger_thread: threading.Thread)

This class manages the logger thread.

Parameters:

logger_thread – The logger thread to manage.

Returns:

logger_thread
terminate_logger()

This method terminates the logger thread. It should be called when log is complete during program cleanup.

Returns:

logseg.__version__ = '0.3.1'