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.1.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

logg3r-2.0.1-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: logg3r-2.0.1.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.6

File hashes

Hashes for logg3r-2.0.1.tar.gz
Algorithm Hash digest
SHA256 866d1f2fe7e8d3cfcc6e85d59efabdbfa14925f2dd1363828ca978180a8104db
MD5 19a50c6628a4f077212111fdac3dee14
BLAKE2b-256 2e56bf334ae9ec59199b2d4992fbd71427c9797ae857f35c35f46580d323a99d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: logg3r-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.6

File hashes

Hashes for logg3r-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3c36c14f035cbe17c9efc814d0be7bf027bb268b694aacf16b8ad30f25a10da4
MD5 dc33f000c4f6bc16ed665e8143435ca2
BLAKE2b-256 46ad70ef93853ca78ddf76307b497501f5a854c49d7252535d4f96f8fccc7f41

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