# FastAPI-Logger (`fapilog`)




**Production-ready structured logging for FastAPI with trace IDs, async queues, and observability integration.**
`fapilog` delivers enterprise-grade logging with zero frictionβJSON logs, distributed tracing, async-safe queues, and observability hooksβso every microservice in your stack emits consistent, query-friendly events from day one.
> **Package Info**: This project is published to PyPI as `fapilog` and developed in the `fastapi-logger` repository.
---
## β¨ Why Choose fapilog?
| Feature | fapilog Advantage |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------- |
| **Zero-friction setup** | One-liner `configure_logging()`βno YAML gymnastics or copy-pasted boilerplate. |
| **Production-ready** | Built for high-traffic microservices with async queues, distributed tracing, and observability integration. |
| **Structured by default** | JSON logs (Docker & cloud-native friendly) with pretty console rendering for local development. |
| **Context propagation** | Trace ID, span ID, request path, status, user ID flow through `contextvars` without polluting your code. |
| **Async & non-blocking** | Background queue + worker ensures log writing never blocks the event loop, even under high RPS. |
| **Enterprise security** | Built-in PII redaction, field-level allow/deny lists, GDPR-friendly opt-outs, and audit trails. |
| **Observability integration** | Native OpenTelemetry spans, Prometheus/OTLP metrics, and correlation IDs across logs, traces, and metrics. |
| **Container architecture** | Clean dependency injection with multiple configurations, thread safety, and excellent testability. |
| **Extensible architecture** | Pluggable sinks (stdout, files, Loki, HTTP) and custom enrichers with just a few lines of code. |
| **Developer experience** | Pytest fixtures, comprehensive examples, and detailed documentation for rapid adoption. |
---
## π Comparison with Alternatives
| Feature | fapilog | fastapi-logger | structlog | Basic logging |
| -------------------------- | ----------------------- | ---------------- | ---------------- | ---------------- |
| **Zero-config setup** | β
One-liner | β Manual setup | β Manual setup | β Manual setup |
| **Async-safe** | β
Background queue | β Blocking | β Blocking | β Blocking |
| **Distributed tracing** | β
Native support | β Manual | β Manual | β Manual |
| **PII redaction** | β
Built-in | β Manual | β Manual | β Manual |
| **Observability hooks** | β
OpenTelemetry | β None | β None | β None |
| **Container architecture** | β
Dependency injection | β Global state | β Global state | β Global state |
| **Multiple configs** | β
Isolated containers | β Single config | β Single config | β Single config |
| **Production-ready** | β
Enterprise features | β οΈ Basic | β οΈ Basic | β Basic |
| **FastAPI integration** | β
Native middleware | β
Native | β Manual | β Manual |
---
## π Quick Start
### Installation
```bash
pip install fapilog
```
For additional features, install optional dependencies:
```bash
# With Loki support
pip install fapilog[loki]
# With FastAPI integration helpers
pip install fapilog[fastapi]
# With system metrics support
pip install fapilog[metrics]
# For development
pip install fapilog[dev]
```
#### Version Pinning
For production deployments, we recommend pinning the version to ensure reproducible builds:
```bash
# Production (allows patch updates)
pip install fapilog~=0.1.0
# Strict reproducibility (exact version)
pip install fapilog==0.1.0
```
#### Python Compatibility
`fapilog` requires Python 3.8 or higher and is compatible with Python 3.8, 3.9, 3.10, 3.11, and 3.12.
### Basic Usage
After installation, you can start logging immediately:
```python
from fapilog import configure_logging, log
configure_logging()
log.info("Hello from fapilog!")
```
### FastAPI Integration
```python
# main.py
from fastapi import FastAPI
from fapilog import configure_logging, log
configure_logging() # instant logging superpowers
app = FastAPI()
@app.get("/ping")
async def ping():
log.info("ping_hit") # JSON log with trace_id, path, method, etc.
return {"pong": True}
```
Run the service:
```bash
uvicorn app.main:app --reload
```
Local console shows colourised logs; in production the same call emits compact JSON suitable for Loki, Cloud Logging, or ELK.
### Quick Configuration
**Environment variables for common setups:**
```bash
# Development
export FAPILOG_LEVEL=DEBUG
export FAPILOG_JSON_CONSOLE=pretty
# Production
export FAPILOG_LEVEL=INFO
export FAPILOG_SINKS=stdout,file:///var/log/app.log,loki://loki:3100
export FAPILOG_JSON_CONSOLE=json
export FAPILOG_REDACT_PATTERNS=password,token,secret
```
**Programmatic configuration:**
```python
from fapilog.settings import LoggingSettings
from fapilog import configure_logging
settings = LoggingSettings(
level="INFO",
sinks=["stdout", "file:///var/log/app.log"],
redact_patterns=["password", "token"],
queue_enabled=True
)
logger = configure_logging(settings=settings)
```
π **For complete configuration reference, see [Configuration Guide](https://fapilog.readthedocs.io/en/latest/config.html) or [docs/config.md](docs/config.md)**
---
## π Documentation
### π Complete Documentation
- **[π ReadTheDocs](https://fapilog.readthedocs.io/)** - Complete documentation with search
- **[Configuration Guide](docs/config.md)** - All 22 configuration settings with examples
- **[API Reference](docs/api-reference.md)** - Complete technical reference
- **[User Guide](docs/user-guide.md)** - Step-by-step tutorials and best practices
- **[Examples](examples/)** - Real-world usage patterns and recipes
- **[Troubleshooting](docs/troubleshooting.md)** - Common issues and solutions
- **[FAQ](docs/faq.md)** - Frequently asked questions
### Quick Navigation
**For New Users:**
- [Introduction](docs/introduction.md) β [Primer](docs/primer.md) β [Quickstart](docs/quickstart.md)
**For Developers:**
- [Configuration Guide](docs/config.md) β [API Reference](docs/api-reference.md) β [Examples](examples/)
**For Production:**
- [User Guide - Production Deployment](docs/user-guide.md#production-deployment) β [Troubleshooting](docs/troubleshooting.md)
---
## π Development Setup
```bash
git clone https://github.com/chris-haste/fastapi-logger.git
cd fastapi-logger
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
hatch run test
```
> **Repository vs Package Name**: This project is developed in the `fastapi-logger` repository but published to PyPI as `fapilog`. The repository name is descriptive of the project's purpose, while the package name is concise and memorable.
> **Note:** The test suite enforces a minimum coverage threshold of 85% using `pytest-cov`. If coverage falls below this threshold, the test run will fail locally and in CI. To see a detailed coverage report, use `hatch run test-cov` or inspect the HTML report in `htmlcov/` after running tests.
### Development Commands
- `hatch run lint` - Run Ruff linter
- `hatch run typecheck` - Run MyPy type checker
- `hatch run test` - Run pytest test suite
- `hatch run test-cov` - Run tests with coverage report
- `hatch run test-queue-load` - Run load testing for logging queue
### Pre-commit Hooks
This project uses pre-commit hooks to ensure code quality. The hooks run automatically on staged files and include:
- **Ruff** - Linting and code formatting
- **MyPy** - Type checking
- **Vulture** - Dead code detection
**Setup:**
```bash
# Install pre-commit (included in dev dependencies)
pip install -e ".[dev]"
# Install the git hooks
pre-commit install
# Run manually on all files
pre-commit run --all-files
```
**Note:** The pre-commit hooks will run automatically on staged files when you commit. You can also run them manually using the commands above.
---
## π€ Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for detailed information on:
- Setting up your development environment
- Code style and testing guidelines
- Commit message conventions
- Pull request process
- Release procedures
---
## πΊοΈ Roadmap
- [ ] Refactor to remove dependency on structlog
- [ ] OpenTelemetry span auto-capture
- [ ] SQLAlchemy slow-query detector
- [ ] Redis/RabbitMQ context propagation helpers
- [ ] Live log-level toggle endpoint (`/admin/log-level`)
- [ ] Kinesis / PubSub sinks
Contributions welcomeβsee **`CONTRIBUTING.md`** for guidelines.
---
## π€ License
Apache 2.0 β free for commercial and open-source use.
> _FastAPI-Logger is built for high-throughput async APIs, but the core modules are framework-agnosticβuse them in Celery workers, scripts, or any structlog pipeline with minimal tweaks._
## π Changelog
See [CHANGELOG.md](CHANGELOG.md) for a complete history of changes and releases.
---
## π Key Features
### Core Capabilities
- **Structured JSON logging** with automatic field enrichment
- **Distributed tracing** with trace ID propagation across services
- **Async-safe logging queue** that never blocks your application
- **Multiple sink support** (stdout, file, Loki, custom)
- **Automatic PII redaction** with configurable patterns
- **Container architecture** for isolated configurations and testing
- **FastAPI middleware** for automatic request context enrichment
- **Resource metrics** (memory, CPU) with optional psutil integration
- **Custom enrichers** for application-specific metadata
- **Comprehensive error handling** with graceful degradation
### Production Features
- **High-performance async queue** with configurable overflow strategies
- **Automatic log flushing** on application shutdown
- **Load testing tools** for queue performance validation
- **Prometheus metrics** for monitoring logging health
- **Thread-safe containers** for concurrent access
- **Graceful error handling** with detailed exception types
- **Environment-driven configuration** (12-factor app compliant)
### Developer Experience
- **Zero-configuration setup** with sensible defaults
- **Comprehensive documentation** with examples and tutorials
- **Type hints** throughout the codebase
- **Extensive test coverage** (85% minimum threshold)
- **Pre-commit hooks** for code quality
- **Load testing tools** for performance validation
- **Multiple configuration patterns** for different environments
π **For detailed feature documentation, see [User Guide](docs/user-guide.md) and [API Reference](docs/api-reference.md)**
Raw data
{
"_id": null,
"home_page": null,
"name": "fapilog",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "asyncio, cloud-native, context, correlation, distributed, fastapi, json, logging, loki, microservices, middleware, monitoring, observability, opentelemetry, production, structured, tracing",
"author": "Chris Haste",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/c0/2e/79e017d21fb217b82f3eb5dab84186b799cd8a95ee9a52b58202e86bfae1/fapilog-0.2.0.tar.gz",
"platform": null,
"description": "# FastAPI-Logger (`fapilog`)\n\n\n\n\n\n\n**Production-ready structured logging for FastAPI with trace IDs, async queues, and observability integration.**\n\n`fapilog` delivers enterprise-grade logging with zero friction\u2014JSON logs, distributed tracing, async-safe queues, and observability hooks\u2014so every microservice in your stack emits consistent, query-friendly events from day one.\n\n> **Package Info**: This project is published to PyPI as `fapilog` and developed in the `fastapi-logger` repository.\n\n---\n\n## \u2728 Why Choose fapilog?\n\n| Feature | fapilog Advantage |\n| ----------------------------- | ----------------------------------------------------------------------------------------------------------- |\n| **Zero-friction setup** | One-liner `configure_logging()`\u2014no YAML gymnastics or copy-pasted boilerplate. |\n| **Production-ready** | Built for high-traffic microservices with async queues, distributed tracing, and observability integration. |\n| **Structured by default** | JSON logs (Docker & cloud-native friendly) with pretty console rendering for local development. |\n| **Context propagation** | Trace ID, span ID, request path, status, user ID flow through `contextvars` without polluting your code. |\n| **Async & non-blocking** | Background queue + worker ensures log writing never blocks the event loop, even under high RPS. |\n| **Enterprise security** | Built-in PII redaction, field-level allow/deny lists, GDPR-friendly opt-outs, and audit trails. |\n| **Observability integration** | Native OpenTelemetry spans, Prometheus/OTLP metrics, and correlation IDs across logs, traces, and metrics. |\n| **Container architecture** | Clean dependency injection with multiple configurations, thread safety, and excellent testability. |\n| **Extensible architecture** | Pluggable sinks (stdout, files, Loki, HTTP) and custom enrichers with just a few lines of code. |\n| **Developer experience** | Pytest fixtures, comprehensive examples, and detailed documentation for rapid adoption. |\n\n---\n\n## \ud83d\udcca Comparison with Alternatives\n\n| Feature | fapilog | fastapi-logger | structlog | Basic logging |\n| -------------------------- | ----------------------- | ---------------- | ---------------- | ---------------- |\n| **Zero-config setup** | \u2705 One-liner | \u274c Manual setup | \u274c Manual setup | \u274c Manual setup |\n| **Async-safe** | \u2705 Background queue | \u274c Blocking | \u274c Blocking | \u274c Blocking |\n| **Distributed tracing** | \u2705 Native support | \u274c Manual | \u274c Manual | \u274c Manual |\n| **PII redaction** | \u2705 Built-in | \u274c Manual | \u274c Manual | \u274c Manual |\n| **Observability hooks** | \u2705 OpenTelemetry | \u274c None | \u274c None | \u274c None |\n| **Container architecture** | \u2705 Dependency injection | \u274c Global state | \u274c Global state | \u274c Global state |\n| **Multiple configs** | \u2705 Isolated containers | \u274c Single config | \u274c Single config | \u274c Single config |\n| **Production-ready** | \u2705 Enterprise features | \u26a0\ufe0f Basic | \u26a0\ufe0f Basic | \u274c Basic |\n| **FastAPI integration** | \u2705 Native middleware | \u2705 Native | \u274c Manual | \u274c Manual |\n\n---\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\npip install fapilog\n```\n\nFor additional features, install optional dependencies:\n\n```bash\n# With Loki support\npip install fapilog[loki]\n\n# With FastAPI integration helpers\npip install fapilog[fastapi]\n\n# With system metrics support\npip install fapilog[metrics]\n\n# For development\npip install fapilog[dev]\n```\n\n#### Version Pinning\n\nFor production deployments, we recommend pinning the version to ensure reproducible builds:\n\n```bash\n# Production (allows patch updates)\npip install fapilog~=0.1.0\n\n# Strict reproducibility (exact version)\npip install fapilog==0.1.0\n```\n\n#### Python Compatibility\n\n`fapilog` requires Python 3.8 or higher and is compatible with Python 3.8, 3.9, 3.10, 3.11, and 3.12.\n\n### Basic Usage\n\nAfter installation, you can start logging immediately:\n\n```python\nfrom fapilog import configure_logging, log\n\nconfigure_logging()\nlog.info(\"Hello from fapilog!\")\n```\n\n### FastAPI Integration\n\n```python\n# main.py\nfrom fastapi import FastAPI\nfrom fapilog import configure_logging, log\n\nconfigure_logging() # instant logging superpowers\n\napp = FastAPI()\n\n@app.get(\"/ping\")\nasync def ping():\n log.info(\"ping_hit\") # JSON log with trace_id, path, method, etc.\n return {\"pong\": True}\n```\n\nRun the service:\n\n```bash\nuvicorn app.main:app --reload\n```\n\nLocal console shows colourised logs; in production the same call emits compact JSON suitable for Loki, Cloud Logging, or ELK.\n\n### Quick Configuration\n\n**Environment variables for common setups:**\n\n```bash\n# Development\nexport FAPILOG_LEVEL=DEBUG\nexport FAPILOG_JSON_CONSOLE=pretty\n\n# Production\nexport FAPILOG_LEVEL=INFO\nexport FAPILOG_SINKS=stdout,file:///var/log/app.log,loki://loki:3100\nexport FAPILOG_JSON_CONSOLE=json\nexport FAPILOG_REDACT_PATTERNS=password,token,secret\n```\n\n**Programmatic configuration:**\n\n```python\nfrom fapilog.settings import LoggingSettings\nfrom fapilog import configure_logging\n\nsettings = LoggingSettings(\n level=\"INFO\",\n sinks=[\"stdout\", \"file:///var/log/app.log\"],\n redact_patterns=[\"password\", \"token\"],\n queue_enabled=True\n)\nlogger = configure_logging(settings=settings)\n```\n\n\ud83d\udcd6 **For complete configuration reference, see [Configuration Guide](https://fapilog.readthedocs.io/en/latest/config.html) or [docs/config.md](docs/config.md)**\n\n---\n\n## \ud83d\udcd6 Documentation\n\n### \ud83d\udcda Complete Documentation\n\n- **[\ud83d\udcda ReadTheDocs](https://fapilog.readthedocs.io/)** - Complete documentation with search\n- **[Configuration Guide](docs/config.md)** - All 22 configuration settings with examples\n- **[API Reference](docs/api-reference.md)** - Complete technical reference\n- **[User Guide](docs/user-guide.md)** - Step-by-step tutorials and best practices\n- **[Examples](examples/)** - Real-world usage patterns and recipes\n- **[Troubleshooting](docs/troubleshooting.md)** - Common issues and solutions\n- **[FAQ](docs/faq.md)** - Frequently asked questions\n\n### Quick Navigation\n\n**For New Users:**\n\n- [Introduction](docs/introduction.md) \u2192 [Primer](docs/primer.md) \u2192 [Quickstart](docs/quickstart.md)\n\n**For Developers:**\n\n- [Configuration Guide](docs/config.md) \u2192 [API Reference](docs/api-reference.md) \u2192 [Examples](examples/)\n\n**For Production:**\n\n- [User Guide - Production Deployment](docs/user-guide.md#production-deployment) \u2192 [Troubleshooting](docs/troubleshooting.md)\n\n---\n\n## \ud83d\udee0 Development Setup\n\n```bash\ngit clone https://github.com/chris-haste/fastapi-logger.git\ncd fastapi-logger\npython -m venv .venv && source .venv/bin/activate\npip install -e \".[dev]\"\nhatch run test\n```\n\n> **Repository vs Package Name**: This project is developed in the `fastapi-logger` repository but published to PyPI as `fapilog`. The repository name is descriptive of the project's purpose, while the package name is concise and memorable.\n\n> **Note:** The test suite enforces a minimum coverage threshold of 85% using `pytest-cov`. If coverage falls below this threshold, the test run will fail locally and in CI. To see a detailed coverage report, use `hatch run test-cov` or inspect the HTML report in `htmlcov/` after running tests.\n\n### Development Commands\n\n- `hatch run lint` - Run Ruff linter\n- `hatch run typecheck` - Run MyPy type checker\n- `hatch run test` - Run pytest test suite\n- `hatch run test-cov` - Run tests with coverage report\n- `hatch run test-queue-load` - Run load testing for logging queue\n\n### Pre-commit Hooks\n\nThis project uses pre-commit hooks to ensure code quality. The hooks run automatically on staged files and include:\n\n- **Ruff** - Linting and code formatting\n- **MyPy** - Type checking\n- **Vulture** - Dead code detection\n\n**Setup:**\n\n```bash\n# Install pre-commit (included in dev dependencies)\npip install -e \".[dev]\"\n\n# Install the git hooks\npre-commit install\n\n# Run manually on all files\npre-commit run --all-files\n```\n\n**Note:** The pre-commit hooks will run automatically on staged files when you commit. You can also run them manually using the commands above.\n\n---\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for detailed information on:\n\n- Setting up your development environment\n- Code style and testing guidelines\n- Commit message conventions\n- Pull request process\n- Release procedures\n\n---\n\n## \ud83d\uddfa\ufe0f Roadmap\n\n- [ ] Refactor to remove dependency on structlog\n- [ ] OpenTelemetry span auto-capture\n- [ ] SQLAlchemy slow-query detector\n- [ ] Redis/RabbitMQ context propagation helpers\n- [ ] Live log-level toggle endpoint (`/admin/log-level`)\n- [ ] Kinesis / PubSub sinks\n\nContributions welcome\u2014see **`CONTRIBUTING.md`** for guidelines.\n\n---\n\n## \ud83e\udd1d License\n\nApache 2.0 \u2014 free for commercial and open-source use.\n\n> _FastAPI-Logger is built for high-throughput async APIs, but the core modules are framework-agnostic\u2014use them in Celery workers, scripts, or any structlog pipeline with minimal tweaks._\n\n## \ud83d\udccb Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for a complete history of changes and releases.\n\n---\n\n## \ud83d\udcca Key Features\n\n### Core Capabilities\n\n- **Structured JSON logging** with automatic field enrichment\n- **Distributed tracing** with trace ID propagation across services\n- **Async-safe logging queue** that never blocks your application\n- **Multiple sink support** (stdout, file, Loki, custom)\n- **Automatic PII redaction** with configurable patterns\n- **Container architecture** for isolated configurations and testing\n- **FastAPI middleware** for automatic request context enrichment\n- **Resource metrics** (memory, CPU) with optional psutil integration\n- **Custom enrichers** for application-specific metadata\n- **Comprehensive error handling** with graceful degradation\n\n### Production Features\n\n- **High-performance async queue** with configurable overflow strategies\n- **Automatic log flushing** on application shutdown\n- **Load testing tools** for queue performance validation\n- **Prometheus metrics** for monitoring logging health\n- **Thread-safe containers** for concurrent access\n- **Graceful error handling** with detailed exception types\n- **Environment-driven configuration** (12-factor app compliant)\n\n### Developer Experience\n\n- **Zero-configuration setup** with sensible defaults\n- **Comprehensive documentation** with examples and tutorials\n- **Type hints** throughout the codebase\n- **Extensive test coverage** (85% minimum threshold)\n- **Pre-commit hooks** for code quality\n- **Load testing tools** for performance validation\n- **Multiple configuration patterns** for different environments\n\n\ud83d\udcd6 **For detailed feature documentation, see [User Guide](docs/user-guide.md) and [API Reference](docs/api-reference.md)**\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Production-ready structured logging for FastAPI with trace IDs, async queues, and observability integration",
"version": "0.2.0",
"project_urls": {
"Bug-Tracker": "https://github.com/chris-haste/fastapi-logger/issues",
"Documentation": "https://fapilog.readthedocs.io/",
"Homepage": "https://github.com/chris-haste/fastapi-logger",
"PyPI Package": "https://pypi.org/project/fapilog/",
"Repository": "https://github.com/chris-haste/fastapi-logger"
},
"split_keywords": [
"asyncio",
" cloud-native",
" context",
" correlation",
" distributed",
" fastapi",
" json",
" logging",
" loki",
" microservices",
" middleware",
" monitoring",
" observability",
" opentelemetry",
" production",
" structured",
" tracing"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "10b19187289919ac609cc561673f9654eb118f1536474c2b13b944093f6f83c4",
"md5": "f3444a22bea67ed93f73872d99749577",
"sha256": "6df052f4bd3b3c70ba27d643f1d1c62d7a4af601776a0a048921c741f8f18c13"
},
"downloads": -1,
"filename": "fapilog-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f3444a22bea67ed93f73872d99749577",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 57493,
"upload_time": "2025-07-21T23:32:54",
"upload_time_iso_8601": "2025-07-21T23:32:54.354879Z",
"url": "https://files.pythonhosted.org/packages/10/b1/9187289919ac609cc561673f9654eb118f1536474c2b13b944093f6f83c4/fapilog-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c02e79e017d21fb217b82f3eb5dab84186b799cd8a95ee9a52b58202e86bfae1",
"md5": "14972e68fad5346fdf98d182c6aff2d3",
"sha256": "304f03d21ba8a34bf12eb4b711ec9fa0f278837d5b380cf547566d3ce09e57ff"
},
"downloads": -1,
"filename": "fapilog-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "14972e68fad5346fdf98d182c6aff2d3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 49206,
"upload_time": "2025-07-21T23:32:57",
"upload_time_iso_8601": "2025-07-21T23:32:57.316240Z",
"url": "https://files.pythonhosted.org/packages/c0/2e/79e017d21fb217b82f3eb5dab84186b799cd8a95ee9a52b58202e86bfae1/fapilog-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-21 23:32:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "chris-haste",
"github_project": "fastapi-logger",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"tox": true,
"lcname": "fapilog"
}