Skip to main content

Logging made simple.

Project description

logpie

Logging made simple.

This is a simple logging module with thread & file locking abilities.


Installation:

python -m pip install [--upgrade] logpie

Usage:

# your `main.py` module

from os.path import dirname, realpath, join
from sys import modules
from types import ModuleType

from cfgpie import get_config, CfgParser
from logpie import get_logger, Logger

# **************************** config constants: **************************** #

# main module
MODULE: ModuleType = modules.get("__main__")

# root directory
ROOT: str = dirname(realpath(MODULE.__file__))

# default config file path:
CONFIG: str = join(ROOT, "config", "cfgpie.ini")

# backup config params:
BACKUP: dict = {
    "LOGGER": {
        "basename": "logpie",  # if handler is `file`
        "folder": r"${DEFAULT:directory}\logs",
        "handler": "file",  # or `console` or `nostream` (no output)
        "debug": True,  # if set to `True` it will also print `DEBUG` messages
    }
}

# NOTE: The constants above serve the usage example
#       and you can use whatever suits you best.

# ********************** get `ConfigParser` instance: *********************** #

cfg: CfgParser = get_config(name="my_config")
cfg.set_defaults(directory=ROOT)
cfg.open(file_path=CONFIG, encoding="UTF-8", fallback=BACKUP)

# ************************* get `Logger` instance: ************************** #

log: Logger = get_logger(name="my_logger", config=cfg)
# we can pass a config instance

or

log: Logger = get_logger(name="my_logger", config="my_config")
# it will look for a config instance named `my_config`

or

log: Logger = get_logger(name="my_logger", basename="logpie", handler="file", debug=True)
# it will create and use its own config instance


log.debug("Testing debug messages...")
log.info("Testing info messages...")
log.warning("Testing warning messages...")
log.error("Testing error messages...")
log.critical("Testing critical messages...")

By default, debugging is set to False and must be enabled to work.

The log file is prefixed with a date and will have an index number attached before the extension (ex: 2022-08-01_logpie.1.log). When it reaches 1 Mb the file handler will switch to another file by incrementing its index with 1.

The folder tree is by default structured as follows:

.
└───logs
    └───year (ex: 2022)
        └───month (ex: january)
            ├───2022-08-01_logpie.1.log
            ├───2022-08-01_logpie.2.log
            └───2022-08-01_logpie.3.log

When the current month changes, a new folder is created and the previous one is archived.


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

logpie-1.0.2.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

logpie-1.0.2-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file logpie-1.0.2.tar.gz.

File metadata

  • Download URL: logpie-1.0.2.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for logpie-1.0.2.tar.gz
Algorithm Hash digest
SHA256 8726abc9b7018baa225f4cfe8382c3950f30a68c9fe053d8ef38bee05d2e3bac
MD5 48605b2c32a807542886aef5977e7f45
BLAKE2b-256 354bbc4f2ad3d9293f8c49b5cf53a9b79fd48bfd6f3ecd90d87699723124d612

See more details on using hashes here.

File details

Details for the file logpie-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: logpie-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for logpie-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 64fb6120a850db114c7e53c76e447cb95721b0226832197e974567c5659a8a43
MD5 b46db73332f6429163b034aad68f8abb
BLAKE2b-256 55fcff105ddb356a3f9e0c389445abd3e93393eb402105a0568e8d436ecbba18

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