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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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