Pure Python 3 logging library that use queues for handling log.
Project description
q-logger-py
q-logger-py is a pure Python 3 logging library that use queues for handling log messages.
It is thread-based, which makes it faster than standard file logging.
Installation
pip install q-logger-py
Usage
first need to create a QueueHandler
and a ThreadWorker
(either ThreadStdoutWorker
or ThreadRotateFileWorker
).
Then, add the QueueHandler
to your logger and start the ThreadWorker
.
import logging
from q_logger_py import QueueHandler, ThreadStdoutWorker
queue_handler = QueueHandler()
thread_worker = ThreadStdoutWorker(queue_handler.log_queue)
logger = logging.getLogger(__name__)
logger.addHandler(queue_handler)
logger.setLevel(logging.DEBUG)
thread_worker.start()
logger.debug('This is a debug')
logger.info('This is a info')
logger.warning('This is a warning')
logger.error('This is an error')
thread_worker.end()
Features
- Thread-based: uses threads to handle log messages, which makes it faster than standard file logging.
- Queue-based: uses queues to store log messages, which ensures that no log messages are lost.
Custom Output
key features of q-logger-py is the ease of creating custom outputs.
By inheriting from the BaseThreadWorker
class, you can define output
method to handle records in any way you want.
from q_logger_py.worker.base_thread_worker import BaseThreadWorker
class ThreadFileWorker(BaseThreadWorker):
def __init__(self, log_queue, filename):
super().__init__(log_queue)
self.file = open(filename, 'a')
def output(self):
log_output = self.format(self.record)
# add custom output here
# self.file.write(log_output + '\n')
# self.file.flush()
print(log_output)
License
q-logger-py is licensed under the Apache License.
Project Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for q_logger_py-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dbb051fefe18cb0d705ff1a89624bcbad89dc3d0954a8199c7b9377bf10f978a |
|
MD5 | 5f2eabff09edcbc289d04dbb2b01cb87 |
|
BLAKE2b-256 | e999f7445e5dada1aa78c483c3c519998e802ea016dc2c6951ab7f0c042956cf |