By this command line tool, you can run a python repl which logs everying into a file.
Project description
Usage
Install:
pip install logrepl
run the repl:
pylogrepl
then the whole repl will be logged to the file yyyymmddhhmm.log
.
You can also use logrepl to log the whole stream io of a program by:
with logrepl.log_handler(
log_dir,
prefix,
err_acc_time
) as logrepl_handler:
# run your program here
# ...
Config
Prefix of the log file
use the optional positional argument, for example:
pylogrepl prefix
then the log file will be prefix_yyyymmddhhmm.log
.
Dir to save the logs
use the -d
or --dir
options:
pylogrepl -d "store/logs"
pylogrepl --dir "store/logs"
then the log file will be in the store/logs
directory.
Time interval to collect errors of logrepl
We found that if something goes wrong in logrepl, it may produce many highly repeatitive exceptions is a short time. To avoid getting overwhelmed by those error messages, logrepl will collect them in a time interval and then print the non-duplicated ones. To set the time interval (although it should be non-necessary), use the '-t' or '--time' options:
pylogrepl -t 1.5
pylogrepl --time 1.5
the unit is second.
By .pylogrepl file
You can also sepcify the prefix & the directory by making a .pylogrepl
in the working directory:
dir=logs
prefix=my_prefix
err_acc_time=1.5
note that the command line arguments are prioritized over the settings in .pylogrepl
. We suggest that specifying dir
in .pylogrepl
and prefix
by command line argument is a handy approach.
APIs
By executing pylogrepl
, the logrepl_handler
of class logrepl.Handler
will be loaded to the current namespace. The logrepl_handler
controls the logging behavior of the repl.
update logging dir / file
logrepl.Handler.set_dir(log_dir)
Update new logging dir. log_dir
must be string
or Path
. The suffix _yyyymmddhhmm.log
will also be updated while the prefix
will remain unchanged.
logrepl.Handler.set_prefix(prefix)
Update new prefix for the log file. prefix
sholud be str
or None
. The suffix _yyyymmddhhmm.log
will also be updated while the log_dir
will remain unchanged. Drop the prefix of new log file by setting prefix
as None
.
logrepl.Handler.update_suffix()
Update the timestamp suffix with log_dir
& prefix
unchanged.
start / stop logging to file
logrepl.Handler.start_log()
start logging to the file.
logrepl.Handler.stop_log()
stop logging to the file.
handle sys.stdin/stdout/stderr & builtins.input
logrepl.Handler.set_io() To log everything of the repl, logrepl modifies sys.stdin/stdout/stderr & builtins.input by this method.
logrepl.Handler.reset_io()
Reset sys.stdin/stdout/stderr & builtins.input as-is. The repl will still log input into the file after executing reset_io
.
Notes
Exceptions ocurred when writing to the log file will not be logged since it'll lead to infinite loop.
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
File details
Details for the file logrepl-0.2.0.tar.gz
.
File metadata
- Download URL: logrepl-0.2.0.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.7 Linux/5.15.146.1-microsoft-standard-WSL2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05685863fdfc9bf5d8e34da5756a3bcd8762a1847c37d322aa9866f6bd179b95 |
|
MD5 | b2825b4eb66b0b3b8ba6232fb080ac29 |
|
BLAKE2b-256 | 414496e264e0fa1306965e060cbbb52ce15ecb0dd7ae77a6cc77e1a875b66375 |
File details
Details for the file logrepl-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: logrepl-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.7 Linux/5.15.146.1-microsoft-standard-WSL2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 115855a38a3de3a7666de4d746510c878c98b8be8b5ce648803fa61779296f9a |
|
MD5 | 41233fe553422221dc77e49992da653c |
|
BLAKE2b-256 | 9343316e39f14cdfc9dbd6d909279d13d6c32ed55137a8cd4df216906212ead3 |