Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

logrepl-0.2.1.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

logrepl-0.2.1-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file logrepl-0.2.1.tar.gz.

File metadata

  • Download URL: logrepl-0.2.1.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

Hashes for logrepl-0.2.1.tar.gz
Algorithm Hash digest
SHA256 f6cf9fdc6cf68a726547732a573acb46eb8be4bc9fb0abbb84a385861717ab5d
MD5 6fcc08fd914bd41dea916c7f6f6f8ff2
BLAKE2b-256 d5ea6df8c5fe85fbefbb1be396a5dd234ea5685b6a2e59702f36509266cb1f4b

See more details on using hashes here.

File details

Details for the file logrepl-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: logrepl-0.2.1-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

Hashes for logrepl-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fab164f1574db34197deedba88ea55964cd3d0048492b6de6d84dba967822a45
MD5 18a9427d89cc1d956536131f86dfb2a0
BLAKE2b-256 b37b75c682c1067603b9f48bc28168050319644aff7573099af6fd1433e97fa8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page