# FastAPI MongoDB Logger
A comprehensive logging package for FastAPI applications that stores endpoint logs and custom events in MongoDB.
## Installation
```bash
pip install fastapi-mongo-logger-mateoramos
```
## Quick Start
### 1. Basic Setup
```python
from fastapi import FastAPI
from fastapi_mongo_logger import MongoLogger, LoggingMiddleware
app = FastAPI()
# Initialize logger
logger = MongoLogger(
mongo_url="mongodb://localhost:27017",
database_name="my_app_logs",
collection_name="api_logs"
)
# Add middleware for automatic endpoint logging
app.add_middleware(LoggingMiddleware, logger=logger)
@app.get("/")
async def root():
return {"message": "Hello World"}
```
### 2. Manual Logging with Decorators
```python
from fastapi_mongo_logger import log_endpoint, log_function
@log_endpoint(logger, user_type="admin")
async def admin_function():
# Your code here
pass
@log_function(logger, event_type="data_processing")
def process_data():
# Your code here
pass
```
### 3. Custom Logging
```python
# Log custom events anywhere in your code
await logger.log_custom("user_action", {
"user_id": "123",
"action": "login",
"ip_address": "192.168.1.1"
})
```
## Features
- **Automatic endpoint logging** via middleware
- **Manual logging** with decorators
- **Custom event logging** for any part of your application
- **Comprehensive data capture**: request/response bodies, headers, timing, errors
- **Async/sync function support**
- **Flexible data storage** in MongoDB
## Configuration Options
- `log_request_body`: Enable/disable request body logging (default: True)
- `log_response_body`: Enable/disable response body logging (default: False)
- Custom fields can be added to any log entry
Raw data
{
"_id": null,
"home_page": "https://github.com/mateoramos97/fastapi-mongo-logs",
"name": "fastapi-mongo-logger-mateoramos",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "fastapi mongodb logging middleware async",
"author": "Mateo Ramos",
"author_email": "mateoramos1997@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/c0/ab/2c6e5de9f43488c0275b2edb4b19adc906b82a50ca66333a4588bd9fda91/fastapi_mongo_logger_mateoramos-1.0.1.tar.gz",
"platform": null,
"description": "# FastAPI MongoDB Logger\n\nA comprehensive logging package for FastAPI applications that stores endpoint logs and custom events in MongoDB.\n\n## Installation\n\n```bash\npip install fastapi-mongo-logger-mateoramos\n```\n\n## Quick Start\n\n### 1. Basic Setup\n\n```python\nfrom fastapi import FastAPI\nfrom fastapi_mongo_logger import MongoLogger, LoggingMiddleware\n\napp = FastAPI()\n\n# Initialize logger\nlogger = MongoLogger(\n mongo_url=\"mongodb://localhost:27017\",\n database_name=\"my_app_logs\",\n collection_name=\"api_logs\"\n)\n\n# Add middleware for automatic endpoint logging\napp.add_middleware(LoggingMiddleware, logger=logger)\n\n@app.get(\"/\")\nasync def root():\n return {\"message\": \"Hello World\"}\n```\n\n### 2. Manual Logging with Decorators\n\n```python\nfrom fastapi_mongo_logger import log_endpoint, log_function\n\n@log_endpoint(logger, user_type=\"admin\")\nasync def admin_function():\n # Your code here\n pass\n\n@log_function(logger, event_type=\"data_processing\")\ndef process_data():\n # Your code here\n pass\n```\n\n### 3. Custom Logging\n\n```python\n# Log custom events anywhere in your code\nawait logger.log_custom(\"user_action\", {\n \"user_id\": \"123\",\n \"action\": \"login\",\n \"ip_address\": \"192.168.1.1\"\n})\n```\n\n## Features\n\n- **Automatic endpoint logging** via middleware\n- **Manual logging** with decorators\n- **Custom event logging** for any part of your application\n- **Comprehensive data capture**: request/response bodies, headers, timing, errors\n- **Async/sync function support**\n- **Flexible data storage** in MongoDB\n\n## Configuration Options\n\n- `log_request_body`: Enable/disable request body logging (default: True)\n- `log_response_body`: Enable/disable response body logging (default: False)\n- Custom fields can be added to any log entry\n",
"bugtrack_url": null,
"license": null,
"summary": "FastAPI MongoDB logging package for endpoints and general logging",
"version": "1.0.1",
"project_urls": {
"Bug Reports": "https://github.com/mateoramos97/fastapi-mongo-logs/issues",
"Homepage": "https://github.com/mateoramos97/fastapi-mongo-logs",
"Source": "https://github.com/mateoramos97/fastapi-mongo-logs"
},
"split_keywords": [
"fastapi",
"mongodb",
"logging",
"middleware",
"async"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1ec12a5172725e9a3c9c8a8501028c35c5211c246ab48149685637495f1a1527",
"md5": "dc7cd4782029f2ff67395b348535ec00",
"sha256": "5ca3cc31ee05d69c743adf18e2453b75e40c28808cd098c02f29bba0237ee399"
},
"downloads": -1,
"filename": "fastapi_mongo_logger_mateoramos-1.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dc7cd4782029f2ff67395b348535ec00",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 6147,
"upload_time": "2025-08-03T22:00:42",
"upload_time_iso_8601": "2025-08-03T22:00:42.998731Z",
"url": "https://files.pythonhosted.org/packages/1e/c1/2a5172725e9a3c9c8a8501028c35c5211c246ab48149685637495f1a1527/fastapi_mongo_logger_mateoramos-1.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c0ab2c6e5de9f43488c0275b2edb4b19adc906b82a50ca66333a4588bd9fda91",
"md5": "8559cba8fab738413b8982ede1821417",
"sha256": "364ccc444bccfe623fe6731b6ba44d1d947620c5a19f4ad2960e641c2944e481"
},
"downloads": -1,
"filename": "fastapi_mongo_logger_mateoramos-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "8559cba8fab738413b8982ede1821417",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 5222,
"upload_time": "2025-08-03T22:00:44",
"upload_time_iso_8601": "2025-08-03T22:00:44.206651Z",
"url": "https://files.pythonhosted.org/packages/c0/ab/2c6e5de9f43488c0275b2edb4b19adc906b82a50ca66333a4588bd9fda91/fastapi_mongo_logger_mateoramos-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-03 22:00:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mateoramos97",
"github_project": "fastapi-mongo-logs",
"github_not_found": true,
"lcname": "fastapi-mongo-logger-mateoramos"
}