Skip to main content

readylog

Readylog is a logging configuration template for Python's logging.

Usage

Basic example:

# my_app.py

from logging.config import dictConfig as configure_logging
from logging import getLogger
from pathlib import Path

from platformdirs import user_log_dir
from readylog import create_dict_config


def setup_logging() -> None:
    app_name = "my_app"
    author = "Me"

    log_dir = Path(user_log_dir(app_name, author))
    log_dir.mkdir(parents=True, exist_ok=True)

    logging_config = create_dict_config(log_dir / "debug.log", app_name)
    configure_logging(logging_config)


logger = getLogger(__name__)
setup_logging()

logger.debug("This should be logged")

Documentation

readylog's public objects

DEFAULT_CORE_LOG_FORMAT = "{levelname} {name}({lineno}), {funcName}: {message}"
DEFAULT_CONSOLE_LOG_FORMAT = DEFAULT_CORE_LOG_FORMAT
DEFAULT_FILE_LOG_FORMAT = "{} {}".format("{asctime}.{msecs:03.0f} ", DEFAULT_CORE_LOG_FORMAT)
DEFAULT_CONSOLE_LOG_TIME_FORMAT = "%H:%M:%S"
DEFAULT_FILE_LOG_TIME_FORMAT = DEFAULT_CONSOLE_LOG_TIME_FORMAT


def create_dict_config(
    logfile: Path | str,
    app_name: str,
    console_log_level: str | int = "WARNING",
    console_log_format: str = DEFAULT_CONSOLE_LOG_FORMAT,
    console_log_time_format: str = DEFAULT_CONSOLE_LOG_TIME_FORMAT,
    file_log_level: str | int = "DEBUG",
    file_log_format: str = DEFAULT_FILE_LOG_FORMAT,
    file_log_time_format: str = DEFAULT_CONSOLE_LOG_TIME_FORMAT,
    console_handler_factory: Callable = StreamHandler,
    file_handler_factory: Callable = FileHandler,
    additional_logger_names: tuple[str] = (),
    root_logger_level: str | int = "WARNING",
) -> dict[str, str]:

Arguments:

  • logfile: name of the log file where to save the logs
  • app_name: name of your app (will be used as a logger name)

Keyword Arguments:

  • console_log_level: minimum log level for the console log
  • console_log_format: console log line format in "{" style
  • file_log_level: minimum log level for the file log
  • file_log_format: file log line format in "{" style
  • console_handler_factory: the factory for the stream handler
  • file_handler_factory: the factory for the file handler
  • additional_logger_names: here you can put all the other logger names which you want to include in your log. Use this when you have projects with uv workspaces and want to see logs from workspace members rather than just from you main app.
  • root_logger_lever: minimum level to display in you root log

Root Log file

Root log will be output to console and to a file. The path and name of the root log file is derived from the logfile path, but the file name stem has a "_root" suffix.

For example if logfile path is /home/my_user/my_app/debug.log, then the root log will be in /home/my_user/my_app/debug_root.log.

Metadata

Release files for readylog 0.6.1

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

Source distribution (sdist)

Source distribution for readylog 0.6.1
File Size Uploaded
readylog-0.6.1.tar.gz 3.7 kB Details

Built distribution (wheel)

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

Total release size: 8.8 kB

Release files / readylog-0.6.1.tar.gz

Download URL readylog-0.6.1.tar.gz
Size 3.7 kB
Tags Source
SHA-256 checksum
How to use checksums
1807bd8938ff10320c59d1458e831cea3a88b8d6d20bccf990b2272161b1edbf
BLAKE2b-256 checksum
How to use checksums
04defbd38008ac2dbcba0e69c575027e9323ed910aa4eb753280788a733696f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 6, 2026.

Transparency log

Release files / readylog-0.6.1-py3-none-any.whl

Download URL readylog-0.6.1-py3-none-any.whl
Size 5.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1cb7fcaf81e160f2afe24adad5c3a820299669a3a68a161dd71a7d9dd0607cfc
BLAKE2b-256 checksum
How to use checksums
b5ffb6f4c85fe45d148fe81e3e589556b13c0ba5c3782676d2fffa76df98e243
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.1 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.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