Skip to main content

A flexible logging framework with JSON, file, and SMTP logging

Project description

Loggerizer

A simple, powerful wrapper for Python's built-in logging module.

PyPI version Python 3.11+ License: MIT

Installation

pip install loggerizer

Quick Start

from loggerizer import LoggerFactory

logger = LoggerFactory.console()
logger.info("Hello, World!")

Logger Types

Console Logger

from loggerizer import LoggerFactory

logger = LoggerFactory.console()
logger.info("Human-readable console output")

Console JSON Logger

from loggerizer import LoggerFactory

logger = LoggerFactory.console_json()
logger.info("Structured JSON output")

File Logger

from loggerizer import LoggerFactory

logger = LoggerFactory.file("app.log")
logger.info("Logging to file")

JSON File Logger

from loggerizer import LoggerFactory

logger = LoggerFactory.file_json("app.json")
logger.info("JSON logging to file")

Rotating Logger (by size)

from loggerizer import LoggerFactory

logger = LoggerFactory.rotating(
    "app.log",
    max_bytes=10_000_000,  # 10MB
    backup_count=5
)
logger.info("Size-based rotation")

Timed Rotating Logger

from loggerizer import LoggerFactory, RotateWhen

logger = LoggerFactory.timed_rotating(
    "app.log",
    when=RotateWhen.MIDNIGHT,
    backup_count=7
)
logger.info("Time-based rotation")

Email Logger

from loggerizer import LoggerFactory, SMTPConfig

config = SMTPConfig(
    host=("smtp.example.com", 587),
    from_address="alerts@example.com",
    to_address=["admin@example.com"],
    subject="[ALERT] Application Error",
)

logger = LoggerFactory.email(config)
logger.error("Critical error occurred!")

Null Logger

from loggerizer import LoggerFactory

logger = LoggerFactory.null()
logger.info("This message is discarded")

Custom Logger (Builder Pattern)

from loggerizer import LoggerBuilder, handlers, LogLevel, LogField, DefaultFormatter

logger = (
    LoggerBuilder()
    .name("my_app")
    .level(LogLevel.DEBUG)
    .formatter(DefaultFormatter(
        fields=[LogField.ASC_TIME, LogField.LEVEL_NAME, LogField.MESSAGE, LogField.MODULE],
        flat=True
    ))
    .handler(handlers.stream())
    .handler(handlers.file("app.log"))
    .build()
)

logger.debug("Debug message")
logger.info("Info message")
logger.error("Error message")

Adding Extra Data

from loggerizer import LoggerFactory

logger = LoggerFactory.console_json()
logger.info("User action", extra={"user_id": 123, "action": "login", "ip": "192.168.1.1"})

Custom Fields

from loggerizer import LoggerFactory, LogField

logger = LoggerFactory.console(
    fields=[
        LogField.ASC_TIME,
        LogField.LEVEL_NAME,
        LogField.MESSAGE,
        LogField.MODULE,
        LogField.FUNC_NAME,
        LogField.LINE_NO,
    ]
)
logger.info("With extra context")

Available Log Fields

Field Description
ASC_TIME Human-readable timestamp
LEVEL_NAME Log level (DEBUG, INFO, etc.)
MESSAGE Log message
NAME Logger name
MODULE Module name
FUNC_NAME Function name
LINE_NO Line number
FILE_NAME File name
PATH_NAME Full file path
PROCESS Process ID
THREAD Thread ID
EXCEPTION Exception info

Handlers

from loggerizer import handlers

handlers.stream()                    # Console output
handlers.file("app.log")             # File output
handlers.rotating("app.log")         # Size-based rotation
handlers.timed_rotating("app.log")   # Time-based rotation
handlers.smtp(config)                # Email alerts
handlers.null()                      # Discard logs

License

MIT

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

loggerizer-1.0.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

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

loggerizer-1.0.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file loggerizer-1.0.0.tar.gz.

File metadata

  • Download URL: loggerizer-1.0.0.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for loggerizer-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d3d46ed828c9020bf1221aab62a16c63c822022780e84f09c4f88282c61a8da6
MD5 7671628fcf61da4a91fa44cb58e157ee
BLAKE2b-256 7f533d7731f93ac815d0f785223f8a13593395f81c4704b6ea17f1ac4d25aab7

See more details on using hashes here.

Provenance

The following attestation bundles were made for loggerizer-1.0.0.tar.gz:

Publisher: publish.yml on AymanKastali/loggerizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file loggerizer-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: loggerizer-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for loggerizer-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4d812d696856807f40364ab1ca9473766a51cda03045e643d2d6f69007249adc
MD5 52b4287d2332867fb872b16b127cf6e3
BLAKE2b-256 46b078b98b40bf43f5131a41e4dfbcf042b4f2b87a0bab2c115b73fdc4601f23

See more details on using hashes here.

Provenance

The following attestation bundles were made for loggerizer-1.0.0-py3-none-any.whl:

Publisher: publish.yml on AymanKastali/loggerizer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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