enhanced-logger


Nameenhanced-logger JSON
Version 0.1.3 PyPI version JSON
download
home_pagehttps://github.com/Rohan7654/enhanced_logger_package.git
SummaryAn enhanced logging package for Python with additional features and performance metrics.
upload_time2024-07-24 20:05:28
maintainerNone
docs_urlNone
authorROHAN
requires_python>=3.6
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Enhanced Logger
--------------------------
[![PyPI version](https://badge.fury.io/py/enhanced_logger.svg)](https://pypi.org/project/enhanced-logger/)
[![Downloads](https://pepy.tech/badge/enhanced_logger)](https://pypi.org/project/enhanced-logger/)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

The `Enhanced Logger` package is an extension of the built-in Python `logging` module, designed to address additional features and performance metrics. This package includes:

- Trace logging to log all function entry and exit
- JSON and XML formatters
- Performance metrics logging
- HTTP and database logging handlers
- File logging for all logger types (except DB Handler)

## Features

- **Trace Logging:** Log entry and exit points of functions with context.
- **Performance Metrics:** Log execution time and memory usage of functions.
- **Enhanced Formatters:** Log entries in JSON and XML formats.
- **HTTP Logging:** Send log entries to a remote server via HTTP.
- **Database Logging:** Store log entries in various types of databases (SQLite, PostgreSQL, MongoDB).
- **File Logging:** Option to store logs in a `.log` file.

## Installation

To install the Enhanced Logger package, use the following command:

```sh
pip install enhanced-logger
```

## Usage

### Trace Logger

Trace logging allows you to trace the entry and exit points of functions.

```python
from enhanced_logger import EnhancedLogger

trace_logger = EnhancedLogger.configure_trace_logger('trace_logger')

@trace_logger.trace
def sample_function(x, y):
    return x + y

sample_function(5, 10)

```

### Performance Logger

Performance logging provides execution time and memory usage information.

```python
from enhanced_logger import EnhancedLogger

performance_logger = EnhancedLogger.configure_performance_logger('performance_logger')

@performance_logger.log_performance
def example_function(n):
    total = 0
    for i in range(n):
        total += i
    return total

example_function(1000000)

```

### Enhanced Performance Logger

Enhanced performance logging with additional details.

```python
from enhanced_logger import EnhancedLogger

enhanced_performance_logger = EnhancedLogger.configure_enhanced_performance_logger('enhanced_performance_logger')

@enhanced_performance_logger.log_performance
def compute_factorial(n):
    if n == 0:
        return 1
    else:
        return n * compute_factorial(n - 1)

compute_factorial(10)

```
### JSON Formatter

Logs entries in JSON format.

```python
from enhanced_logger import EnhancedLogger

json_logger = EnhancedLogger.configure_json_logger('json_logger')
json_logger.info('This is a test log entry in JSON format.')

```
You can also log context data.
```python
from enhanced_logger import EnhancedLogger

json_logger = EnhancedLogger.configure_json_logger('json_logger')
context_info = {
    'context': {
        'user_id': 12345,
        'transaction_id': 'abcde12345'
    }
}
json_logger.info('This is a test log entry in JSON format with context.', extra=context_info)

```
or you can also use decorator.
```python
@EnhancedLogger.json_log('json_logger')
def add(x, y):
    return x + y

@EnhancedLogger.json_log('json_logger')
def multiply(x, y):
    return x * y

print(add(5, 3))
print(multiply(5, 3))

```

### XML Formatter

Logs entries in XML format.

```python
from enhanced_logger import EnhancedLogger

xml_logger = EnhancedLogger.configure_xml_logger('xml_logger')
xml_logger.info('This is a test log entry in XML format.')

```

### HTTP Handler

Sends log entries to a remote server via HTTP. (Assumes a logging endpoint is available)

```python
from enhanced_logger import EnhancedLogger

http_logger = EnhancedLogger.configure_http_logger('http_logger', 'http://example.com/log', method='POST', headers={'Content-Type': 'application/json'})
http_logger.info('This is a test log entry sent via HTTP.')

```

### DB Handler

Stores log entries in various types of databases likes SQLite/Postgres/MongoDB.

#### SQLite
```python
from enhanced_logger import EnhancedLogger

sqlite_logger = EnhancedLogger.configure_db_logger('sqlite_logger', 'sqlite', {'db_path': 'logs.db'})
sqlite_logger.info('This is a test log entry stored in a SQLite database.')

```

#### PostgreSQL
```python
from enhanced_logger import EnhancedLogger
postgres_logger = EnhancedLogger.configure_db_logger('postgres_logger', 'postgres', {
    'dbname': 'testdb',
    'user': 'dbuser',
    'password': 'dbpass',
    'host': 'localhost',
    'port': 5432
})
postgres_logger.info('This is a test log entry stored in a PostgreSQL database.')

```
#### MongoDB
```python
from enhanced_logger import EnhancedLogger
mongodb_logger = EnhancedLogger.configure_db_logger('mongodb_logger', 'mongodb', {
    'uri': 'mongodb://localhost:27017/',
    'db_name': 'testdb'
})
mongodb_logger.info('This is a test log entry stored in a MongoDB database.')

```
### More Examples
You can also store logs in a `.log` file by specifying file name for the `log_to_file` argument.

```python
from enhanced_logger import EnhancedLogger

# JSON Logger
@EnhancedLogger.json_log('json_logger', log_to_file='json_logs.log')
def add(x, y):
    return x + y

print(add(5, 3))


# Performance Logger
performance_logger = EnhancedLogger.configure_performance_logger('performance_logger', log_to_file='performance_logs.log')

@performance_logger.log_performance
def compute_factorial(n):
    if n == 0:
        return 1
    else:
        return n * compute_factorial(n - 1)

print(compute_factorial(10))

# HTTP Logger
from enhanced_logger import EnhancedLogger

http_logger = EnhancedLogger.configure_http_logger('http_logger', 'http://example.com/log', method='POST', headers={'Content-Type': 'application/json'}, log_to_file='http_logs.log')
http_logger.info('This is a test log entry sent via HTTP.')

```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Rohan7654/enhanced_logger_package.git",
    "name": "enhanced-logger",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": null,
    "author": "ROHAN",
    "author_email": "rohanroni2019@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/dc/d0/7494c4cb3d50b258bf7fef13d603931ac8edbdecc8d25ee3f971235069bb/enhanced_logger-0.1.3.tar.gz",
    "platform": null,
    "description": "# Enhanced Logger\n--------------------------\n[![PyPI version](https://badge.fury.io/py/enhanced_logger.svg)](https://pypi.org/project/enhanced-logger/)\n[![Downloads](https://pepy.tech/badge/enhanced_logger)](https://pypi.org/project/enhanced-logger/)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\nThe `Enhanced Logger` package is an extension of the built-in Python `logging` module, designed to address additional features and performance metrics. This package includes:\n\n- Trace logging to log all function entry and exit\n- JSON and XML formatters\n- Performance metrics logging\n- HTTP and database logging handlers\n- File logging for all logger types (except DB Handler)\n\n## Features\n\n- **Trace Logging:** Log entry and exit points of functions with context.\n- **Performance Metrics:** Log execution time and memory usage of functions.\n- **Enhanced Formatters:** Log entries in JSON and XML formats.\n- **HTTP Logging:** Send log entries to a remote server via HTTP.\n- **Database Logging:** Store log entries in various types of databases (SQLite, PostgreSQL, MongoDB).\n- **File Logging:** Option to store logs in a `.log` file.\n\n## Installation\n\nTo install the Enhanced Logger package, use the following command:\n\n```sh\npip install enhanced-logger\n```\n\n## Usage\n\n### Trace Logger\n\nTrace logging allows you to trace the entry and exit points of functions.\n\n```python\nfrom enhanced_logger import EnhancedLogger\n\ntrace_logger = EnhancedLogger.configure_trace_logger('trace_logger')\n\n@trace_logger.trace\ndef sample_function(x, y):\n    return x + y\n\nsample_function(5, 10)\n\n```\n\n### Performance Logger\n\nPerformance logging provides execution time and memory usage information.\n\n```python\nfrom enhanced_logger import EnhancedLogger\n\nperformance_logger = EnhancedLogger.configure_performance_logger('performance_logger')\n\n@performance_logger.log_performance\ndef example_function(n):\n    total = 0\n    for i in range(n):\n        total += i\n    return total\n\nexample_function(1000000)\n\n```\n\n### Enhanced Performance Logger\n\nEnhanced performance logging with additional details.\n\n```python\nfrom enhanced_logger import EnhancedLogger\n\nenhanced_performance_logger = EnhancedLogger.configure_enhanced_performance_logger('enhanced_performance_logger')\n\n@enhanced_performance_logger.log_performance\ndef compute_factorial(n):\n    if n == 0:\n        return 1\n    else:\n        return n * compute_factorial(n - 1)\n\ncompute_factorial(10)\n\n```\n### JSON Formatter\n\nLogs entries in JSON format.\n\n```python\nfrom enhanced_logger import EnhancedLogger\n\njson_logger = EnhancedLogger.configure_json_logger('json_logger')\njson_logger.info('This is a test log entry in JSON format.')\n\n```\nYou can also log context data.\n```python\nfrom enhanced_logger import EnhancedLogger\n\njson_logger = EnhancedLogger.configure_json_logger('json_logger')\ncontext_info = {\n    'context': {\n        'user_id': 12345,\n        'transaction_id': 'abcde12345'\n    }\n}\njson_logger.info('This is a test log entry in JSON format with context.', extra=context_info)\n\n```\nor you can also use decorator.\n```python\n@EnhancedLogger.json_log('json_logger')\ndef add(x, y):\n    return x + y\n\n@EnhancedLogger.json_log('json_logger')\ndef multiply(x, y):\n    return x * y\n\nprint(add(5, 3))\nprint(multiply(5, 3))\n\n```\n\n### XML Formatter\n\nLogs entries in XML format.\n\n```python\nfrom enhanced_logger import EnhancedLogger\n\nxml_logger = EnhancedLogger.configure_xml_logger('xml_logger')\nxml_logger.info('This is a test log entry in XML format.')\n\n```\n\n### HTTP Handler\n\nSends log entries to a remote server via HTTP. (Assumes a logging endpoint is available)\n\n```python\nfrom enhanced_logger import EnhancedLogger\n\nhttp_logger = EnhancedLogger.configure_http_logger('http_logger', 'http://example.com/log', method='POST', headers={'Content-Type': 'application/json'})\nhttp_logger.info('This is a test log entry sent via HTTP.')\n\n```\n\n### DB Handler\n\nStores log entries in various types of databases likes SQLite/Postgres/MongoDB.\n\n#### SQLite\n```python\nfrom enhanced_logger import EnhancedLogger\n\nsqlite_logger = EnhancedLogger.configure_db_logger('sqlite_logger', 'sqlite', {'db_path': 'logs.db'})\nsqlite_logger.info('This is a test log entry stored in a SQLite database.')\n\n```\n\n#### PostgreSQL\n```python\nfrom enhanced_logger import EnhancedLogger\npostgres_logger = EnhancedLogger.configure_db_logger('postgres_logger', 'postgres', {\n    'dbname': 'testdb',\n    'user': 'dbuser',\n    'password': 'dbpass',\n    'host': 'localhost',\n    'port': 5432\n})\npostgres_logger.info('This is a test log entry stored in a PostgreSQL database.')\n\n```\n#### MongoDB\n```python\nfrom enhanced_logger import EnhancedLogger\nmongodb_logger = EnhancedLogger.configure_db_logger('mongodb_logger', 'mongodb', {\n    'uri': 'mongodb://localhost:27017/',\n    'db_name': 'testdb'\n})\nmongodb_logger.info('This is a test log entry stored in a MongoDB database.')\n\n```\n### More Examples\nYou can also store logs in a `.log` file by specifying file name for the `log_to_file` argument.\n\n```python\nfrom enhanced_logger import EnhancedLogger\n\n# JSON Logger\n@EnhancedLogger.json_log('json_logger', log_to_file='json_logs.log')\ndef add(x, y):\n    return x + y\n\nprint(add(5, 3))\n\n\n# Performance Logger\nperformance_logger = EnhancedLogger.configure_performance_logger('performance_logger', log_to_file='performance_logs.log')\n\n@performance_logger.log_performance\ndef compute_factorial(n):\n    if n == 0:\n        return 1\n    else:\n        return n * compute_factorial(n - 1)\n\nprint(compute_factorial(10))\n\n# HTTP Logger\nfrom enhanced_logger import EnhancedLogger\n\nhttp_logger = EnhancedLogger.configure_http_logger('http_logger', 'http://example.com/log', method='POST', headers={'Content-Type': 'application/json'}, log_to_file='http_logs.log')\nhttp_logger.info('This is a test log entry sent via HTTP.')\n\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "An enhanced logging package for Python with additional features and performance metrics.",
    "version": "0.1.3",
    "project_urls": {
        "Homepage": "https://github.com/Rohan7654/enhanced_logger_package.git"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "53a7180390741d7695992b3d6ea3913e29ede3a154c57da78284edbda290cb6a",
                "md5": "0a44c3fc43b2f26d70578b23ee6698bf",
                "sha256": "7193de5e7decb2d81aeb4bef0690f30a1500718a95ddc4e47017cb1c957a5e3b"
            },
            "downloads": -1,
            "filename": "enhanced_logger-0.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0a44c3fc43b2f26d70578b23ee6698bf",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 5872,
            "upload_time": "2024-07-24T20:05:26",
            "upload_time_iso_8601": "2024-07-24T20:05:26.881418Z",
            "url": "https://files.pythonhosted.org/packages/53/a7/180390741d7695992b3d6ea3913e29ede3a154c57da78284edbda290cb6a/enhanced_logger-0.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dcd07494c4cb3d50b258bf7fef13d603931ac8edbdecc8d25ee3f971235069bb",
                "md5": "f3404129873ddd035cf6109666c2e497",
                "sha256": "ab1af8a4e0937f985a679d71a9e7a0a04c2488f5ae9ed6f4108d2e1888bfe342"
            },
            "downloads": -1,
            "filename": "enhanced_logger-0.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "f3404129873ddd035cf6109666c2e497",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 5760,
            "upload_time": "2024-07-24T20:05:28",
            "upload_time_iso_8601": "2024-07-24T20:05:28.515509Z",
            "url": "https://files.pythonhosted.org/packages/dc/d0/7494c4cb3d50b258bf7fef13d603931ac8edbdecc8d25ee3f971235069bb/enhanced_logger-0.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-24 20:05:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Rohan7654",
    "github_project": "enhanced_logger_package",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "enhanced-logger"
}
        
Elapsed time: 1.27268s