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.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61cef72e816eaeaba56e8e8e2811c8f5c9f87acbf0fbf9a4a699bfcfee232198 |
|
MD5 | 083342a496836f217f4568821372de78 |
|
BLAKE2b-256 | 636bf015407d9223bc5c1c55c09a19fc7e19d5aa88538aba2a8b7f8e4f9c2941 |