Skip to main content

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

Metadata

Release files for logg3r 2.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for logg3r 2.0.2
File Size Uploaded
logg3r-2.0.2.tar.gz 5.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for logg3r 2.0.2
File Interpreter ABI Platform
logg3r-2.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 10.9 kB

Release files / logg3r-2.0.2.tar.gz

Download URL logg3r-2.0.2.tar.gz
Size 5.6 kB
Tags Source
SHA-256 checksum
How to use checksums
db6c9e56856246dd09b66b6b61ce1f72a53033e4cc921baacacc38897fab2131
BLAKE2b-256 checksum
How to use checksums
cdb62891faa77c613d667ecd8a135025a52e35f6972be3bc94b7a02ed7fb9b47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.8.10

Release files / logg3r-2.0.2-py3-none-any.whl

Download URL logg3r-2.0.2-py3-none-any.whl
Size 5.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8dca40fc548d55fcbe2bb1ae5697304f37c25445a9cd6300385e265f4326a1c7
BLAKE2b-256 checksum
How to use checksums
43400e498fd51bf94618383098e740ed1921afd86fa076c6ec6445ce083bc67d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.8.10

Release history Release notifications | RSS feed

This release

2.0.2 This release

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page