Skip to main content

Simple python log helper

Project description

Overview

  • Setting up logging sucks, this makes it easier

Features

  • Simple logger set up
  • Creates log directory and filename as described in Log initialization
  • Prints all log entries to the terminal in color for easier debugging
  • Promotes logging during development, not after. Reduce your tech debt.

Use

Standard Use

from logg3r import Log

logger = Log(log_path="./path-to/log-directory", name="test_log", level=1)

logger.debug("test message")
logger.info("test message")
logger.warning("test message")
logger.error("test message")
logger.critical("test message")

Log file example test_log.log

2023-07-29 03:13:27 | DEBUG | test message
2023-07-29 03:13:27 | INFO | test message
2023-07-29 03:13:27 | WARNING | test message
2023-07-29 03:13:27 | ERROR | test message
2023-07-29 03:13:27 | CRITICAL | test message

Terminal Example


Log with line numbers - recommended

from logg3r import Log

logger = Log(log_path="./path-to/log-directory", name="test_log", level=1)
line = logger.line #must be called from the line being logged


logger.debug(line()+"test message")
logger.info(line()+"test message")
logger.warning(line()+"test message")
logger.error(line()+"test message")
logger.critical(line()+"test message")

Log file example test_log.log

2023-07-29 03:30:25 | DEBUG | 7 test message
2023-07-29 03:30:25 | INFO | 8 test message
2023-07-29 03:30:25 | WARNING | 9 test message
2023-07-29 03:30:25 | ERROR | 10 test message
2023-07-29 03:30:25 | CRITICAL | 11 test message

Terminal Example



Initialization Keyword Arguments

Required

log_path (string)

  • If the path does not exist (and create_path is not False) logg3r will create the directory

name (string)

  • Sets the name of your log file - file will present as "filename.log" in your log directory

level (integer)

  • See log levels
  • Sets minimum level of log message that will be stored in the log file (all log function calls print to terminal)

Optional

print_filename (bool)

from logg3r import Log

Logger = Log(log_path="./path-to/log-directory",
			name="test_log",
			level=1,
			print_filename=True)
  • Defaults to False
  • If enabled, the filename will print in the first section of the log message in the terminal - the filename will not be written to the log file

formatter (string)

from logg3r import Log
fmt='{} | %(levelname)s | %(message)s '.format(datetime.datetime.utcnow().replace(microsecond=0))

Logger = Log(log_path="./path-to/log-directory",
			name="test_log",
			level=1,
			formatter=fmt)
  • The formatter can be any string you like
    • %(levelname)s is required and corresponds to the log level
    • %(message)s is required and is the message passed when calling any of the log functions
    • In the example above the date and time are represented at {} and formatted with .format(datetime.datetime.utcnow().replace(microsecond=0))
    • Any other string elements can be added to the formatter

rotation (tuple)

from logg3r import Log
rotation_args=filename,when='d',interval=30,backupCount=1,encoding=None,delay=False,utc=True,atTime=datetime.time(4, 0, 0)

Logger = Log(log_path="./path-to/log-directory,
			name="test_log",
			level=1,
			rotation=rotation_args)

create_path (bool)

  • Defaults to True
  • If set to False initializing logg3r will not create a new log directory, but will put the file in the directory passed to log_path



Log Levels

  • 1 = DEBUG (green)
  • 2 = INFO (cyan)
  • 3 = WARNING (yellow)
  • 4 = ERROR (magenta)
  • 5 = CRITICAL (red)



logg3r.Log Functions

.debug

  • Creates debug level log message entry to log file
  • Prints message in color to terminal
logger.debug("log message")

.info

  • Creates info level log message entry to log file
  • Prints message in color to terminal
logger.info("log message")

.warning

  • Creates warning level log message entry to log file
  • Prints message in color to terminal
logger.warning("log message")

.error

  • Creates error level log message entry to log file
  • Prints message in color to terminal
logger.error("log message")

.critical

  • Creates critical level log message entry to log file
  • Prints message in color to terminal
logger.critical("log message")

.line

  • Returns line number of the code where the function is called - unfortunately this couldn't be integrated automatically because the function must be called from the line being logged
line = logger.line
logger.debug(line()+"log_message")



References

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

logg3r-2.0.0.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

logg3r-2.0.0-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file logg3r-2.0.0.tar.gz.

File metadata

  • Download URL: logg3r-2.0.0.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for logg3r-2.0.0.tar.gz
Algorithm Hash digest
SHA256 8ca499e9ebaf896c7ac93a7a6eac7dbb00d55b95cc6984139476755e866db3f1
MD5 fc25091edb8ef054b328bb5cbe3333e8
BLAKE2b-256 d133709db25f78d3b5ce0f15595eb4dd3aec7c911c54386b106aaaa0093667dd

See more details on using hashes here.

File details

Details for the file logg3r-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: logg3r-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for logg3r-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 570a9e16d220275ed7f846fd9acd7795199de614a99e1bbae2a353f8332e5bd8
MD5 1a8d0cdd3be04dbe7109acbbc73345f0
BLAKE2b-256 cf9e7b9aa85039545c7dc660af9a02bb9890719fcb546eb21ad5146f5292d825

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