Skip to main content

Advanced Python Logging

Project description

Advanced Python Logging (APV)

Flexible & powerful logging solution for Python applications

Table of Contents

Introduction

APV emerged from a simple observation: despite the abundance of logging solutions, there's a glaring lack of standardization in application logging. APV is my response to this challenge – a logging library that doesn't aim to revolutionize the field, but rather to streamline it.

Requirements

  • Python 3.10+

Installation

From PyPI

pip install apv

From Source

git clone https://github.com/acidvegas/apv
cd apv
pip install .

Features

  • Console Logging with Colors: Enhanced readability with colored log messages in the console.
  • File Logging: Write logs to files with support for log rotation based on size and number of backups.
  • Log Compression: Automatically compress old log files using gzip to save disk space.
  • JSON Logging: Output logs in JSON format for better structure and integration with log management systems.
  • Detailed Log Messages: Option to include module name, function name, and line number in log messages.

Configuration Options

The setup_logging function accepts the following keyword arguments to customize logging behavior:

Name Default Description
level INFO The logging level. (DEBUG, INFO, WARNING, ERROR, CRITICAL)
date_format '%Y-%m-%d %H:%M:%S' The date format for log messages.
log_to_disk False Whether to log to disk.
max_log_size 10*1024*1024 (10 MB) The maximum size of log files before rotation (in bytes).
max_backups 7 The maximum number of backup log files to keep.
log_file_name 'app' The base name of the log file.
json_log False Whether to log in JSON format.
show_details False Whether to include module name, function name, & line number in log messages.
compress_backups False Whether to compress old log files using gzip.

Usage

Basic Console Logging

import logging
import apv

# Set up basic console logging
apv.setup_logging(level='INFO')

logging.info('This is an info message.')
logging.error('This is an error message.')

Console Logging with Details

import logging
import apv

# Set up console logging with detailed information
apv.setup_logging(level='DEBUG', show_details=True)

logging.debug('Debug message with details.')

File Logging with Rotation

import logging
import apv

# Set up file logging with log rotation
apv.setup_logging(
    level='INFO',
    log_to_disk=True,
    max_log_size=10*1024*1024,  # 10 MB
    max_backups=5,
    log_file_name='application_log'
)

logging.info('This message will be logged to a file.')

File Logging with Compression and JSON Format

import logging
import apv

# Set up file logging with compression and JSON format
apv.setup_logging(
    level='DEBUG',
    log_to_disk=True,
    max_log_size=5*1024*1024,  # 5 MB
    max_backups=7,
    log_file_name='json_log',
    json_log=True,
    compress_backups=True
)

logging.debug('This is a debug message in JSON format.')

Mixing it all together

import logging
import apv

# Set up logging to all handlers
apv.setup_logging(
    level='DEBUG',
    log_to_disk=True,
    max_log_size=10*1024*1024,
    max_backups=7,
    log_file_name='app',
    json_log=True,
    compress_backups=True,
    show_details=True
)

Mirrors: acid.vegasSuperNETsGitHubGitLabCodeberg

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

apv-4.0.1.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

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

apv-4.0.1-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file apv-4.0.1.tar.gz.

File metadata

  • Download URL: apv-4.0.1.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.3

File hashes

Hashes for apv-4.0.1.tar.gz
Algorithm Hash digest
SHA256 690e4bd5b7eb61f48b805b0ce296e5b6397e6e77eb134dfa87d0b56bc8856cd5
MD5 75ebe7223424efc98d32f1bf7b572113
BLAKE2b-256 c9554553002ee9b30cf64f9b611e7dce0c8d373fb54b5933a1f9d2eb57d38119

See more details on using hashes here.

File details

Details for the file apv-4.0.1-py3-none-any.whl.

File metadata

  • Download URL: apv-4.0.1-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.3

File hashes

Hashes for apv-4.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 54d74a4ff265818d0433a79d60841b91a2bc9189fcbde2db1cc3483b31b8e5e8
MD5 ea5dc53ea4c2e262dda4608505072deb
BLAKE2b-256 b49fdace370f53ef6b1119ebd4a3f32079b368e1811e37f6ac221f788842c217

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