mongodb-logger


Namemongodb-logger JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryIntelligent MongoDB logging handler for Python with structured data support
upload_time2025-08-29 01:36:04
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT License Copyright (c) 2024 MongoDB Logger Team Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords database-logging json-logging logging mongodb python-logging structured-logging
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # MongoDB Logger

[![PyPI version](https://badge.fury.io/py/mongodb-logger.svg)](https://badge.fury.io/py/mongodb-logger)
[![Python Support](https://img.shields.io/pypi/pyversions/mongodb-logger.svg)](https://pypi.org/project/mongodb-logger/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

**Intelligent MongoDB logging handler for Python with structured data support**

MongoDB Logger is a Python library that provides seamless integration between Python's standard logging module and MongoDB. It preserves structured data (dictionaries, lists, etc.) in their native format while adding comprehensive metadata for better log analysis.

## โœจ Features

### ๐ŸŽฏ **Intelligent Data Handling**
- **Structured Data Preservation**: Dictionaries and lists stored as native MongoDB objects
- **Type-Aware Processing**: Automatic handling of strings, numbers, booleans, and complex types
- **Container Conversion**: Smart conversion of tuples and sets to arrays

### ๐Ÿ”ง **Rich Metadata**
Every log entry automatically includes:
- **Source Information**: Module, function, line number
- **Temporal Data**: UTC timestamp with timezone awareness
- **Log Context**: Logger name, level, formatted arguments
- **Custom Identifiers**: Application/service identification via `LOG_FROM`

### ๐Ÿš€ **Production Ready**
- **Thread-Safe**: Queue-based processing for high-concurrency applications
- **Auto-Reconnection**: Robust connection handling with retry logic
- **Dual Output**: Simultaneous console and MongoDB logging
- **Environment-Based Config**: Simple setup via environment variables

## ๐Ÿ“ฆ Installation

### From PyPI (Recommended)
```bash
pip install mongodb-logger
```

### From Source
```bash
git clone https://github.com/your-username/mongodb-logger.git
cd mongodb-logger
pip install -e .
```

### Development Installation
```bash
git clone https://github.com/your-username/mongodb-logger.git
cd mongodb-logger
pip install -e ".[dev]"
```

## ๐Ÿš€ Quick Start

### 1. Environment Setup
Create a `.env` file in your project root:

```env
MONGODB_URI="mongodb://user:password@host:port/database"
LOG_FROM="your_app_name"
```

**Example:**
```env
MONGODB_URI="mongodb://username:password@localhost:27017/mydatabase"
LOG_FROM="my_application"
```

### 2. Basic Usage

```python
import logging
from mongodb_logger import setup_mongodb_logging

# Initialize MongoDB logging (call once at application startup)
setup_mongodb_logging()

# Use standard Python logging
logging.info("Application started successfully")

# Log structured data (preserved as MongoDB objects)
logging.info({
    "event": "user_login",
    "user_id": 12345,
    "metadata": {
        "ip_address": "192.168.1.100",
        "user_agent": "Mozilla/5.0...",
        "session_id": "abc123"
    }
})

# Log arrays and lists
logging.info(["task_completed", "task_started", "task_pending"])

# Different log levels work seamlessly
logging.warning({
    "alert_type": "disk_space_low",
    "usage_percent": 85,
    "server": "web-01"
})

logging.error({
    "error_type": "database_timeout",
    "operation": "user_fetch",
    "timeout_ms": 5000,
    "retry_count": 3
})
```

### 3. Framework Integration

#### Flask
```python
from flask import Flask, request
import logging
from mongodb_logger import setup_mongodb_logging

app = Flask(__name__)

# Setup logging once at startup
setup_mongodb_logging()

@app.route('/')
def home():
    logging.info({
        "event": "page_view",
        "endpoint": "/",
        "method": request.method,
        "user_agent": request.headers.get('User-Agent'),
        "remote_addr": request.remote_addr
    })
    return "Hello World"

if __name__ == '__main__':
    app.run()
```

#### FastAPI
```python
from fastapi import FastAPI, Request
import logging
from mongodb_logger import setup_mongodb_logging

# Setup logging at startup
setup_mongodb_logging()

app = FastAPI()

@app.get("/")
async def read_root(request: Request):
    logging.info({
        "event": "api_request",
        "endpoint": "/",
        "method": request.method,
        "client": request.client.host if request.client else None
    })
    return {"message": "Hello World"}
```

#### Django
```python
# In settings.py or apps.py
import logging
from mongodb_logger import setup_mongodb_logging

# Setup once during Django startup
setup_mongodb_logging()

# Use anywhere in your Django application
def my_view(request):
    logging.info({
        "event": "view_accessed",
        "view": "my_view",
        "user": str(request.user),
        "method": request.method,
        "path": request.path
    })
    return HttpResponse("Success")
```

## ๐Ÿ“Š MongoDB Document Structure

Every log entry in MongoDB follows this structure:

```javascript
{
    "_id": ObjectId("..."),
    "from": "your_app_name",           // From LOG_FROM environment variable
    "timestamp": ISODate("..."),       // UTC timestamp
    "level": "INFO",                   // Log level
    "logger": "root",                  // Logger name
    "module": "app.py",               // Source module
    "line_number": 42,                // Source line number
    "function": "my_function",        // Source function name
    "message": {                      // Your actual log data
        "event": "user_login",
        "user_id": 123,
        "success": true
    },
    "formatted_args": ["arg1", "arg2"] // Present only for formatted string logs
}
```

## ๐Ÿ”ง Configuration

### Environment Variables

| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `MONGODB_URI` | โœ… | - | MongoDB connection string |
| `LOG_FROM` | โœ… | - | Application identifier (used as collection name) |
| `LOG_LEVEL` | โŒ | `INFO` | Minimum log level |
| `LOG_COLLECTION` | โŒ | `LOG_FROM` value | Custom collection name |

### Advanced Configuration

For custom configuration, you can use the `MongoDBHandler` directly:

```python
import logging
from mongodb_logger import MongoDBHandler

# Custom handler setup
handler = MongoDBHandler(
    uri="mongodb://localhost:27017",
    db="custom_logs",
    collection="app_logs",
    from_value="my_service"
)

logger = logging.getLogger("my_logger")
logger.addHandler(handler)
logger.setLevel(logging.INFO)

logger.info({"custom": "configuration", "working": True})
```

## ๐Ÿ“‹ Supported Data Types

MongoDB Logger intelligently handles various Python data types:

```python
# Strings (preserved as strings)
logging.info("Simple text message")

# Formatted strings (args preserved separately)
logging.info("User %s logged in at %s", username, timestamp)

# Dictionaries (preserved as MongoDB objects)
logging.info({
    "event": "api_call",
    "endpoint": "/users",
    "response_time": 45.2,
    "success": True
})

# Lists (preserved as MongoDB arrays)
logging.info(["item1", "item2", "item3"])

# Tuples (converted to arrays)
logging.info(("x", 10.5, "y", 20.3))

# Sets (converted to arrays)
logging.info({"python", "mongodb", "logging"})

# Mixed types
logging.info({
    "metrics": [1, 2, 3],
    "metadata": {"version": "1.0"},
    "active": True,
    "count": 42
})
```

## ๐Ÿงช Testing

Run the included test suite:

```bash
# Run basic tests
python tests/test_logging.py

# With pytest (for development)
pytest tests/ -v

# With coverage
pytest tests/ --cov=mongodb_logger --cov-report=html
```

## ๐Ÿ” Troubleshooting

### Common Issues

**1. "pymongo not available"**
```bash
pip install pymongo>=4.0.0
```

**2. "MongoDB connection failed"**
- Verify `MONGODB_URI` format
- Check network connectivity to MongoDB server
- Confirm authentication credentials
- Test connection manually:

```python
from pymongo import MongoClient
import os
from dotenv import load_dotenv

load_dotenv()
client = MongoClient(os.getenv("MONGODB_URI"))
print("Connected:", client.admin.command('ping'))
```

**3. "Logs not appearing in MongoDB"**
- Ensure proper flush time for queue processing
- Add small delay before application exit:

```python
import time
# ... your logging code ...
time.sleep(2)  # Allow queue to flush
```

**4. "Import errors after installation"**
- Verify installation: `pip list | grep mongodb-logger`
- Check Python path and virtual environment
- Try reimporting: `python -c "import mongodb_logger; print('OK')"`

### Performance Considerations

- **Queue Processing**: Uses async queues to prevent blocking
- **Connection Pooling**: Maintains persistent MongoDB connections
- **Batch Processing**: Consider batching for high-volume applications
- **Resource Monitoring**: Monitor MongoDB collection size and implement rotation if needed

## ๐Ÿ›ก๏ธ Security Best Practices

- **Never log sensitive data** (passwords, API keys, personal information)
- **Use authentication** in MongoDB connection strings
- **Network security**: Ensure secure connections (TLS/SSL)
- **Access control**: Implement proper MongoDB user permissions
- **Environment variables**: Keep credentials in `.env` files (not in code)

## ๐Ÿค Contributing

Contributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) for details.

### Development Setup

```bash
git clone https://github.com/miroblog/mongodb-logger.git
cd mongodb-logger
pip install -e ".[dev]"
pre-commit install
```

### Running Tests

```bash
pytest tests/ -v
black src/ tests/
isort src/ tests/
flake8 src/ tests/
mypy src/
```

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ“ž Support

- **Issues**: [GitHub Issues](https://github.com/miroblog/mongodb-logger/issues)
- **Documentation**: [GitHub README](https://github.com/miroblog/mongodb-logger#readme)
- **PyPI**: [mongodb-logger](https://pypi.org/project/mongodb-logger/)

## ๐ŸŽฏ Roadmap

- [ ] Batch processing for high-volume applications
- [ ] MongoDB TTL (Time To Live) index support
- [ ] Custom field transformation and filtering
- [ ] Structured query interface for log analysis
- [ ] Integration with popular observability platforms
- [ ] Performance monitoring and metrics

---

**MongoDB Logger** - Making structured logging simple and powerful! ๐Ÿš€
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mongodb-logger",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "MongoDB Logger Team <support@example.com>",
    "keywords": "database-logging, json-logging, logging, mongodb, python-logging, structured-logging",
    "author": null,
    "author_email": "MongoDB Logger Team <support@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/d4/e0/4538e917698e99d56c714f7a51442f3888ebf99b2ab95c2f3beb481e07b4/mongodb_logger-0.1.0.tar.gz",
    "platform": null,
    "description": "# MongoDB Logger\n\n[![PyPI version](https://badge.fury.io/py/mongodb-logger.svg)](https://badge.fury.io/py/mongodb-logger)\n[![Python Support](https://img.shields.io/pypi/pyversions/mongodb-logger.svg)](https://pypi.org/project/mongodb-logger/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**Intelligent MongoDB logging handler for Python with structured data support**\n\nMongoDB Logger is a Python library that provides seamless integration between Python's standard logging module and MongoDB. It preserves structured data (dictionaries, lists, etc.) in their native format while adding comprehensive metadata for better log analysis.\n\n## \u2728 Features\n\n### \ud83c\udfaf **Intelligent Data Handling**\n- **Structured Data Preservation**: Dictionaries and lists stored as native MongoDB objects\n- **Type-Aware Processing**: Automatic handling of strings, numbers, booleans, and complex types\n- **Container Conversion**: Smart conversion of tuples and sets to arrays\n\n### \ud83d\udd27 **Rich Metadata**\nEvery log entry automatically includes:\n- **Source Information**: Module, function, line number\n- **Temporal Data**: UTC timestamp with timezone awareness\n- **Log Context**: Logger name, level, formatted arguments\n- **Custom Identifiers**: Application/service identification via `LOG_FROM`\n\n### \ud83d\ude80 **Production Ready**\n- **Thread-Safe**: Queue-based processing for high-concurrency applications\n- **Auto-Reconnection**: Robust connection handling with retry logic\n- **Dual Output**: Simultaneous console and MongoDB logging\n- **Environment-Based Config**: Simple setup via environment variables\n\n## \ud83d\udce6 Installation\n\n### From PyPI (Recommended)\n```bash\npip install mongodb-logger\n```\n\n### From Source\n```bash\ngit clone https://github.com/your-username/mongodb-logger.git\ncd mongodb-logger\npip install -e .\n```\n\n### Development Installation\n```bash\ngit clone https://github.com/your-username/mongodb-logger.git\ncd mongodb-logger\npip install -e \".[dev]\"\n```\n\n## \ud83d\ude80 Quick Start\n\n### 1. Environment Setup\nCreate a `.env` file in your project root:\n\n```env\nMONGODB_URI=\"mongodb://user:password@host:port/database\"\nLOG_FROM=\"your_app_name\"\n```\n\n**Example:**\n```env\nMONGODB_URI=\"mongodb://username:password@localhost:27017/mydatabase\"\nLOG_FROM=\"my_application\"\n```\n\n### 2. Basic Usage\n\n```python\nimport logging\nfrom mongodb_logger import setup_mongodb_logging\n\n# Initialize MongoDB logging (call once at application startup)\nsetup_mongodb_logging()\n\n# Use standard Python logging\nlogging.info(\"Application started successfully\")\n\n# Log structured data (preserved as MongoDB objects)\nlogging.info({\n    \"event\": \"user_login\",\n    \"user_id\": 12345,\n    \"metadata\": {\n        \"ip_address\": \"192.168.1.100\",\n        \"user_agent\": \"Mozilla/5.0...\",\n        \"session_id\": \"abc123\"\n    }\n})\n\n# Log arrays and lists\nlogging.info([\"task_completed\", \"task_started\", \"task_pending\"])\n\n# Different log levels work seamlessly\nlogging.warning({\n    \"alert_type\": \"disk_space_low\",\n    \"usage_percent\": 85,\n    \"server\": \"web-01\"\n})\n\nlogging.error({\n    \"error_type\": \"database_timeout\",\n    \"operation\": \"user_fetch\",\n    \"timeout_ms\": 5000,\n    \"retry_count\": 3\n})\n```\n\n### 3. Framework Integration\n\n#### Flask\n```python\nfrom flask import Flask, request\nimport logging\nfrom mongodb_logger import setup_mongodb_logging\n\napp = Flask(__name__)\n\n# Setup logging once at startup\nsetup_mongodb_logging()\n\n@app.route('/')\ndef home():\n    logging.info({\n        \"event\": \"page_view\",\n        \"endpoint\": \"/\",\n        \"method\": request.method,\n        \"user_agent\": request.headers.get('User-Agent'),\n        \"remote_addr\": request.remote_addr\n    })\n    return \"Hello World\"\n\nif __name__ == '__main__':\n    app.run()\n```\n\n#### FastAPI\n```python\nfrom fastapi import FastAPI, Request\nimport logging\nfrom mongodb_logger import setup_mongodb_logging\n\n# Setup logging at startup\nsetup_mongodb_logging()\n\napp = FastAPI()\n\n@app.get(\"/\")\nasync def read_root(request: Request):\n    logging.info({\n        \"event\": \"api_request\",\n        \"endpoint\": \"/\",\n        \"method\": request.method,\n        \"client\": request.client.host if request.client else None\n    })\n    return {\"message\": \"Hello World\"}\n```\n\n#### Django\n```python\n# In settings.py or apps.py\nimport logging\nfrom mongodb_logger import setup_mongodb_logging\n\n# Setup once during Django startup\nsetup_mongodb_logging()\n\n# Use anywhere in your Django application\ndef my_view(request):\n    logging.info({\n        \"event\": \"view_accessed\",\n        \"view\": \"my_view\",\n        \"user\": str(request.user),\n        \"method\": request.method,\n        \"path\": request.path\n    })\n    return HttpResponse(\"Success\")\n```\n\n## \ud83d\udcca MongoDB Document Structure\n\nEvery log entry in MongoDB follows this structure:\n\n```javascript\n{\n    \"_id\": ObjectId(\"...\"),\n    \"from\": \"your_app_name\",           // From LOG_FROM environment variable\n    \"timestamp\": ISODate(\"...\"),       // UTC timestamp\n    \"level\": \"INFO\",                   // Log level\n    \"logger\": \"root\",                  // Logger name\n    \"module\": \"app.py\",               // Source module\n    \"line_number\": 42,                // Source line number\n    \"function\": \"my_function\",        // Source function name\n    \"message\": {                      // Your actual log data\n        \"event\": \"user_login\",\n        \"user_id\": 123,\n        \"success\": true\n    },\n    \"formatted_args\": [\"arg1\", \"arg2\"] // Present only for formatted string logs\n}\n```\n\n## \ud83d\udd27 Configuration\n\n### Environment Variables\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `MONGODB_URI` | \u2705 | - | MongoDB connection string |\n| `LOG_FROM` | \u2705 | - | Application identifier (used as collection name) |\n| `LOG_LEVEL` | \u274c | `INFO` | Minimum log level |\n| `LOG_COLLECTION` | \u274c | `LOG_FROM` value | Custom collection name |\n\n### Advanced Configuration\n\nFor custom configuration, you can use the `MongoDBHandler` directly:\n\n```python\nimport logging\nfrom mongodb_logger import MongoDBHandler\n\n# Custom handler setup\nhandler = MongoDBHandler(\n    uri=\"mongodb://localhost:27017\",\n    db=\"custom_logs\",\n    collection=\"app_logs\",\n    from_value=\"my_service\"\n)\n\nlogger = logging.getLogger(\"my_logger\")\nlogger.addHandler(handler)\nlogger.setLevel(logging.INFO)\n\nlogger.info({\"custom\": \"configuration\", \"working\": True})\n```\n\n## \ud83d\udccb Supported Data Types\n\nMongoDB Logger intelligently handles various Python data types:\n\n```python\n# Strings (preserved as strings)\nlogging.info(\"Simple text message\")\n\n# Formatted strings (args preserved separately)\nlogging.info(\"User %s logged in at %s\", username, timestamp)\n\n# Dictionaries (preserved as MongoDB objects)\nlogging.info({\n    \"event\": \"api_call\",\n    \"endpoint\": \"/users\",\n    \"response_time\": 45.2,\n    \"success\": True\n})\n\n# Lists (preserved as MongoDB arrays)\nlogging.info([\"item1\", \"item2\", \"item3\"])\n\n# Tuples (converted to arrays)\nlogging.info((\"x\", 10.5, \"y\", 20.3))\n\n# Sets (converted to arrays)\nlogging.info({\"python\", \"mongodb\", \"logging\"})\n\n# Mixed types\nlogging.info({\n    \"metrics\": [1, 2, 3],\n    \"metadata\": {\"version\": \"1.0\"},\n    \"active\": True,\n    \"count\": 42\n})\n```\n\n## \ud83e\uddea Testing\n\nRun the included test suite:\n\n```bash\n# Run basic tests\npython tests/test_logging.py\n\n# With pytest (for development)\npytest tests/ -v\n\n# With coverage\npytest tests/ --cov=mongodb_logger --cov-report=html\n```\n\n## \ud83d\udd0d Troubleshooting\n\n### Common Issues\n\n**1. \"pymongo not available\"**\n```bash\npip install pymongo>=4.0.0\n```\n\n**2. \"MongoDB connection failed\"**\n- Verify `MONGODB_URI` format\n- Check network connectivity to MongoDB server\n- Confirm authentication credentials\n- Test connection manually:\n\n```python\nfrom pymongo import MongoClient\nimport os\nfrom dotenv import load_dotenv\n\nload_dotenv()\nclient = MongoClient(os.getenv(\"MONGODB_URI\"))\nprint(\"Connected:\", client.admin.command('ping'))\n```\n\n**3. \"Logs not appearing in MongoDB\"**\n- Ensure proper flush time for queue processing\n- Add small delay before application exit:\n\n```python\nimport time\n# ... your logging code ...\ntime.sleep(2)  # Allow queue to flush\n```\n\n**4. \"Import errors after installation\"**\n- Verify installation: `pip list | grep mongodb-logger`\n- Check Python path and virtual environment\n- Try reimporting: `python -c \"import mongodb_logger; print('OK')\"`\n\n### Performance Considerations\n\n- **Queue Processing**: Uses async queues to prevent blocking\n- **Connection Pooling**: Maintains persistent MongoDB connections\n- **Batch Processing**: Consider batching for high-volume applications\n- **Resource Monitoring**: Monitor MongoDB collection size and implement rotation if needed\n\n## \ud83d\udee1\ufe0f Security Best Practices\n\n- **Never log sensitive data** (passwords, API keys, personal information)\n- **Use authentication** in MongoDB connection strings\n- **Network security**: Ensure secure connections (TLS/SSL)\n- **Access control**: Implement proper MongoDB user permissions\n- **Environment variables**: Keep credentials in `.env` files (not in code)\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) for details.\n\n### Development Setup\n\n```bash\ngit clone https://github.com/miroblog/mongodb-logger.git\ncd mongodb-logger\npip install -e \".[dev]\"\npre-commit install\n```\n\n### Running Tests\n\n```bash\npytest tests/ -v\nblack src/ tests/\nisort src/ tests/\nflake8 src/ tests/\nmypy src/\n```\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\udcde Support\n\n- **Issues**: [GitHub Issues](https://github.com/miroblog/mongodb-logger/issues)\n- **Documentation**: [GitHub README](https://github.com/miroblog/mongodb-logger#readme)\n- **PyPI**: [mongodb-logger](https://pypi.org/project/mongodb-logger/)\n\n## \ud83c\udfaf Roadmap\n\n- [ ] Batch processing for high-volume applications\n- [ ] MongoDB TTL (Time To Live) index support\n- [ ] Custom field transformation and filtering\n- [ ] Structured query interface for log analysis\n- [ ] Integration with popular observability platforms\n- [ ] Performance monitoring and metrics\n\n---\n\n**MongoDB Logger** - Making structured logging simple and powerful! \ud83d\ude80",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2024 MongoDB Logger Team  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
    "summary": "Intelligent MongoDB logging handler for Python with structured data support",
    "version": "0.1.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/miroblog/mongodb-logger/issues",
        "Documentation": "https://github.com/miroblog/mongodb-logger#readme",
        "Homepage": "https://github.com/miroblog/mongodb-logger",
        "Repository": "https://github.com/miroblog/mongodb-logger.git"
    },
    "split_keywords": [
        "database-logging",
        " json-logging",
        " logging",
        " mongodb",
        " python-logging",
        " structured-logging"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c5d148a7a9880064243348a5ca9831fdb0156f8f0a23ed17636a48f08cd0104e",
                "md5": "0395d450b84e2b38c14e60543689ca1f",
                "sha256": "dcadda6ac934c72c375b0a0117ee0898c109b9f9663c9d53bd8fa756684838b1"
            },
            "downloads": -1,
            "filename": "mongodb_logger-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0395d450b84e2b38c14e60543689ca1f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 9535,
            "upload_time": "2025-08-29T01:36:03",
            "upload_time_iso_8601": "2025-08-29T01:36:03.597692Z",
            "url": "https://files.pythonhosted.org/packages/c5/d1/48a7a9880064243348a5ca9831fdb0156f8f0a23ed17636a48f08cd0104e/mongodb_logger-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d4e04538e917698e99d56c714f7a51442f3888ebf99b2ab95c2f3beb481e07b4",
                "md5": "9060ff393c953d5acb09e583b1fa5359",
                "sha256": "306ada1b98eaaafb932e437bc276fed7d6b4fe95d9de161f42ca104bc38842e3"
            },
            "downloads": -1,
            "filename": "mongodb_logger-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "9060ff393c953d5acb09e583b1fa5359",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 9294,
            "upload_time": "2025-08-29T01:36:04",
            "upload_time_iso_8601": "2025-08-29T01:36:04.795170Z",
            "url": "https://files.pythonhosted.org/packages/d4/e0/4538e917698e99d56c714f7a51442f3888ebf99b2ab95c2f3beb481e07b4/mongodb_logger-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-29 01:36:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "miroblog",
    "github_project": "mongodb-logger",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "mongodb-logger"
}
        
Elapsed time: 1.38710s