Skip to main content

A logging utility for Python. Developed for personal use.

Project description

loggerric

loggerric is a lightweight Python utility library providing advanced logging, for CLI applications. It offers colorful, formatted output to make debugging, logging and tracking easier.


Features

  • Logging: Structured logging with levels: INFO, WARN, ERROR, DEBUG with highlight.
  • Log2File: Fully automatic logging to file, with various options for customization.
  • Debug Decorator: Lightly debug and semi-benchmark any function using the decorator.
  • Pretty Printing: Pretty print variables like arrays and dictionaries.
  • Tables: Log datasets via CLI colored tables with headers and autosizing.
  • Progress Bars: Real-time CLI progress bars with ETA calculations.
  • Prompts: Interactive user input with optional choices and defaults.
  • Timers: Measure execution time of code snippets.
  • Timestamps: Optional, can be used independently, and support rolling differences.

Installation

pip install loggerric

Usage

Log To File

from loggerric import LogToFile, LogToFileLevel

LogToFile.set_dump_location('C:/Users/MyCoolUsername/Desktop', 'important_log') # Don't include the extension

# Control file logging from anywhere
LogToFile.start_logging()
LogToFile.stop_logging()

# Decide what should be logged to file
LogToFile.enable(LogToFileLevel.INFO, ...)
LogToFile.disable(LogToFileLevel.TIMER, ...)

Logging

from loggerric import Log, LogLevel

# Pretty print dictionaries or arrays, including subdicts
Log.pretty_print({ 'name': 'John Doe' }, indent=4)

# Print out a formatted table
headers = ['Item', 'Stock', 'Price']
rows = [('Cola', '25', '$2.99'), ('GPU', '3', '$995.00'), ('Feather', '2,500', '$0.29')]
Log.table(headers, rows, table_name='Store Items')

Log.info("This is an info message", "This is also a message", ..., highlight=['This', 'message'])
Log.warn("This is a warning", ..., highlight='warning')
Log.error("This is an error", ..., quit_after_log=True, highlight='error')
Log.debug("This is a debug message", ..., highlight='debug')

# Enable or disable specific logging levels
Log.disable(LogLevel.DEBUG, LogLevel.WARN, ...)
Log.enable(LogLevel.DEBUG, ...)

# Debug function using decorator
@Log.debugdec(log_return_value=True, log_args=True)
def my_func(a:int, b:int):
    return a + b
my_function(6, 7)

Progress Bar

from loggerric import ProgressBar
from time import sleep

end_val = 50
bar = ProgressBar(end_value=end_val, name='Downloading', bar_length=40)
for i in range(1, end_val + 1):
    sleep(0.05)
    bar.update(i)

Prompt

from loggerric import prompt

# Simple input
name = prompt("Enter your name")

# Input with options
choice = prompt("Choose a letter", options=['a', 'b', 'c'], default='b', loop_until_valid=True, case_sensitive=False)

Timer

from loggerric import Timer
from time import sleep

with Timer(name='Calculation Timer'):
    sleep(1.5)

Timestamp

from loggerric import Timestamp, Log

Timestamp.set_format('{HH}:{MM}:{SS}.{MS} T+{dm}ms')

Log.info(Timestamp.get())

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

loggerric-1.5.7.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

loggerric-1.5.7-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file loggerric-1.5.7.tar.gz.

File metadata

  • Download URL: loggerric-1.5.7.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for loggerric-1.5.7.tar.gz
Algorithm Hash digest
SHA256 f092a64f4c2d98113f88dd5af74c1cb8638e9aae56b14851338ead43965686c8
MD5 b6209b0240426c95075d9786252742d0
BLAKE2b-256 c9c48f807e42e5b31c25b585b6bf361c004d754cf7d64dc4f8105f0f37c93fd0

See more details on using hashes here.

File details

Details for the file loggerric-1.5.7-py3-none-any.whl.

File metadata

  • Download URL: loggerric-1.5.7-py3-none-any.whl
  • Upload date:
  • Size: 16.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for loggerric-1.5.7-py3-none-any.whl
Algorithm Hash digest
SHA256 12f0f4948f61dc05d87aaa6f571a6c9d4cfc1ed5af19e675124d2fb0d133c7e2
MD5 a5d196f88ccd7fc68081c82ea5c4ca64
BLAKE2b-256 2cf0823c11f9edf10785682f4fe54a24fecb0700129b239e861eeef8f1bcb2ef

See more details on using hashes here.

Supported by

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