A brutish file logger for when you just need to `tee` your screen.
Project description
BruteLogger
A brutish file logger for when you just need to tee
your screen. Forks stdout
to multiple handlers.
Notice
Logging done right should use logging
, or the wonderful loguru
.
Installation
pip install brutelogger
Usage
from brutelogger import BruteLogger
BruteLogger.save_stdout_to_file()
# Everything on screen from now on will be copied
# to a timestamped file inside `./logs/`
More options:
from brutelogger import BruteLogger
BruteLogger.save_stdout_to_file(path='captains_log', fname='stardate_41153.7',
mode='wb', encoding='utf8', also_stderr=True)
print("Our destination is planet Deneb IV")
# => outputs both to terminal and to file `captains_log/stardate_41153.7` (in binary)
See the implementation of save_stdout_to_file
for advanced usage.
Applications
This library offers instead a brute redirect of everything that comes on screen to multiple handlers, typically including the original terminal and a log file. The goal is to maintain a hard copy of the output in case of failure, or for future processing.
For example, the original use case included multiple processes running asynchronously, each calling a C library which used printf()
to deliver important algorithm statistics. These became easy to retrieve from the log file using regular expressions.
How does it work
Any function (call, message) on (/to) the object is propagated verbatim with parameters to each and all handlers.
For example, calling BruteLogger.save_stdout_to_file()
such as calling sys.stdout.flush()
after using
This means that a call to sys.stdout.flush()
will translate in calling flush()
on both the terminal file handler and on the opened log file handler. Same goes for example with close()
being called upon program termination.
Todo
- Option to switch back
sys.__stdout__
- Add / remove handlers
- Accessing handlers (e.g. calling
close()
only on the file log, not on the__stdout__
)
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
File details
Details for the file brutelogger-0.1.2.tar.gz
.
File metadata
- Download URL: brutelogger-0.1.2.tar.gz
- Upload date:
- Size: 3.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2911fd4f80b4057b8bcdae59e3dd26ac24fd46b2a62e4fa72e634e893c047225 |
|
MD5 | 87dde5ea971bfe47833e027206fce42b |
|
BLAKE2b-256 | 34a4678345de1bb49536eab9431269fbdd5c5cc7316702e7b6438206fd3f1f73 |