Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

logrepl

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

logrepl

By this command line tool, you can run a python repl which logs everying into a file.

  • 0.2.7
  • PyPI
  • Socket score

Maintainers
1

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:

import logrepl
with logrepl.log_handler(
    log_dir,
    prefix,
    err_acc_time # usually non-necessary
) as logrepl_handler:
    # import modules and packages
    # run your program here
    # ...

Beware that you have to import all the modules and packages in the with clause. If a logger of some module or package is initialized before the with clause, logrepl cannot modify its logging.StreamHandler, then all the iniformation directed to that StreamHandler will not be logged.

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 in 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 recommend such an approach:

  • specifying dir in .pylogrepl.
  • specifying prefix by command line argument

since you may want to change the prefix frequently but not the dir.

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 input to the repl wil stil be logged 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.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc