fastapi-mongo-logger-mateoramos


Namefastapi-mongo-logger-mateoramos JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttps://github.com/mateoramos97/fastapi-mongo-logs
SummaryFastAPI MongoDB logging package for endpoints and general logging
upload_time2025-08-03 22:00:44
maintainerNone
docs_urlNone
authorMateo Ramos
requires_python>=3.7
licenseNone
keywords fastapi mongodb logging middleware async
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 1.07013s