Skip to main content

Python logging configuration library for MLCommons AIRR applications.

Project description

airrlogger

The airrlogger package provides a standardized logging configuration for AIRR applications.

Usage

Install in a poetry project: poetry add airrlogger

Near the top of any module where you want to log, do something like:

from airrlogger.log_config import get_logger
logger = get_logger(__name__)

Then as early as possible in your program's startup, tell it how to handle the logging:

import logging
from airrlogger.log_config import configure_logging

configure_logging(app_name="myapp", level=logging.INFO)

You can then log like this:

    logger.info("some info logging")

The default output looks like this:

2026-01-09T21:14:13Z - myapp - __main__ - INFO - some info logging

DefaultFormatter

A class that formats log messages with UTC timestamps and optional ANSI color codes for console output.

DebuggingFormatter

A class that formats log messages mostly like DefaultFormatter, adding the fully-qualified scope and lined number where the logging event happens.

To use it:

import logging

from log_config import DebuggingFormatter, configure_logging, get_logger
logger = get_logger("my app")
configure_logging("test_module", logging.DEBUG, formatter=DebuggingFormatter)

The output looks like this:

2026-03-24T20:43:13Z - test_module - my app - ERROR - test:8 - calling from top-level scope before everything else
2026-03-24T20:43:13Z - test_module - my app - ERROR - test:25 - calling from main block in top-level scope
2026-03-24T20:43:13Z - test_module - my app - ERROR - test.MyClass.my_method:13 - calling from my_method
2026-03-24T20:43:13Z - test_module - my app - ERROR - test.MyClass.my_static_method:17 - calling from my_static_method

This formatter is independent of the log level. You can use it even if your log level is not logging.DEBUG.

There is some performance overhead with this method you should keep in mind in a production environment.

configure_logging

A function that configure the root logger with console and optional file output. You can call it multiple times with different loggers or formatters and they will be added to the root logger's log handlers.

from airrlogger.log_config import configure_logging

logger = configure_logging(app_name="modelrunner-api", file="./app.log", level=logging.DEBUG)

get_config_dict

Generates logging configuration dictionaries for use with logging.config.dictConfig. By default, the app name is derived from the package name, but that can be overridden.

This is particularly useful for FastAPI applications, which can adopt this logger by using something like:

run(app, host="0.0.0.0", port=port, log_config=get_config_dict(app_name="modelrunner-api"))

Example Output

2025-12-19T14:10:24Z - modelrunner-api - INFO - 127.0.0.1:36054 - "GET /health HTTP/1.1" 200

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

airrlogger-0.1.1.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

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

airrlogger-0.1.1-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file airrlogger-0.1.1.tar.gz.

File metadata

  • Download URL: airrlogger-0.1.1.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.13.4 Darwin/25.3.0

File hashes

Hashes for airrlogger-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e81dd3a48632f845e28c9446c28139c58958917eb1ba944f17e5550b1ff9bd5a
MD5 df3bafcb20e747c2963c9c170c9436bc
BLAKE2b-256 3ad965f155db9e009661451f95a4a8bcb879d61033265df2b6a34ec9c2ce94b8

See more details on using hashes here.

File details

Details for the file airrlogger-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: airrlogger-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.13.4 Darwin/25.3.0

File hashes

Hashes for airrlogger-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9b7bead65687f096f5d4c8f9187bc43d87c265c0e7dd4baaa089a83675f81602
MD5 bef45c05f1230d280ed66428c732ed7b
BLAKE2b-256 3ea520eab342ac77bf8deaeb54936744bd17b584c7f4d4d0020f8f1ddc921392

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