logginger


Namelogginger JSON
Version 0.0.5 PyPI version JSON
download
home_pageNone
SummaryLogginger is a simple logging library that includes tools to extend the logging module.
upload_time2024-05-10 18:38:48
maintainerNone
docs_urlNone
authorHikmat Samadov
requires_python<4.0,>=3.10
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # logginger

Logginger is a simple logging library that includes tools to extend the logging module.

[![image](https://img.shields.io/pypi/v/logginger.svg?style=flat-square)](https://pypi.python.org/pypi/logginger)
[![image](https://img.shields.io/pypi/wheel/logginger.svg?style=flat-square)](https://pypi.python.org/pypi/logginger)
[![image](https://img.shields.io/pypi/format/logginger.svg?style=flat-square)](https://pypi.python.org/pypi/logginger)
[![image](https://img.shields.io/pypi/pyversions/logginger.svg?style=flat-square)](https://pypi.python.org/pypi/logginger)
[![image](https://img.shields.io/pypi/status/logginger.svg?style=flat-square)](https://pypi.python.org/pypi/logginger)

## Description

A python package that provides logging tools such as handlers and formatter for logging.
This allows developers to use these tools to use in their python logging, and they have more control over the logging.

Additional features include:

1. Logging to Slack (via webhook or token)
2. Logging to File

## Installation

``` bash
pip install logginger
```

## Arguments

- slack_token (str): The Slack API token if not using `webhook_url`
  Generate a key at <https://api.slack.com/>
- channel (str): The Slack channel to post to if not using `webhook_url`
- webhook_url (str): The Slack webhook URL if using `webhook_url`
- is_webhook (bool): Whether to use webhook_url or not (Defaults to `True`)
- is_debug (bool): Doesn't send Slack messages if True (Defaults to `False`)
- stack_trace (bool): Whether to include the stacktrace in the Slack message (Defaults to `True`)
- username (str): The username to use for the Slack message (Not usable if using `webhook_url`)
- icon_url (str): The icon URL to use for the Slack message (Not usable if using `webhook_url`)
- icon_emoji (str): The icon emoji to use for the Slack message (Not usable if using `webhook_url`)
- msg_len (int): The maximum length of the Slack message (Defaults to `1300`)
- traceback_len (int): The maximum length of the stack_trace (Defaults to `700`)
- fail_silent (bool): Whether to fail silently if the Slack API returns an error (Defaults to `False`)
  Defaults to `False`. If your API key is invalid or for some other reason
  the API call returns an error, this option will silently ignore the API
  error. If you enable this setting, **make sure you have another log
  handler** that will also handle the same log events, or they may be lost
  entirely.

## Example Python logging handler

This is how you use log_to_slack as a regular Python
logging handler. This example will send a error message to a slack
channel.

``` python
import logging
import os

from logginger import SlackLogHandler
from logginger.formatters import NoStacktraceFormatter, DefaultFormatter

WEBHOOK_URL = os.getenv("WEBHOOK_URL")

logger = logging.getLogger("debug_application")
logger.setLevel(logging.DEBUG)

default_formatter = DefaultFormatter("%(levelprefix)s %(asctime)s (%(name)s) %(message)s")
no_stacktrace_formatter = NoStacktraceFormatter("%(levelprefix)s %(asctime)s (%(name)s) %(message)s")

default_handler = logging.StreamHandler()
default_handler.setFormatter(default_formatter)
logger.addHandler(default_handler)

slack_handler = SlackLogHandler(webhook_url=WEBHOOK_URL, stack_trace=True)
slack_handler.setFormatter(no_stacktrace_formatter)
slack_handler.setLevel(logging.ERROR)
logger.addHandler(slack_handler)

# Main code
logger.debug("Test DEBUG")
logger.info("Test INFO")
logger.warning("Test WARNING")
logger.error("Test ERROR")
logger.fatal("Test FATAL")
logger.critical("Test CRITICAL")

try:
    raise Exception("Test exception")
except Exception as e:
    logger.exception(e)

```

## Slack message formatting

This example use a subclass that will send a formatted message to a
Slack channel. [Learn More](https://api.slack.com/reference/surfaces/formatting)

``` python
class CustomLogHandler(SlackLogHandler):
    def build_msg(self, record):
        message = "> New message :\n" + record.getMessage()
        return message
```

## License

Apache 2.0

See also: 
- <https://api.slack.com/terms-of-service>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "logginger",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": "Hikmat Samadov",
    "author_email": "hikmat@cublya.com",
    "download_url": "https://files.pythonhosted.org/packages/65/f5/5c438854571af6d37e99401f40269ecb71c6c58eb735ca2fed559237a339/logginger-0.0.5.tar.gz",
    "platform": null,
    "description": "# logginger\n\nLogginger is a simple logging library that includes tools to extend the logging module.\n\n[![image](https://img.shields.io/pypi/v/logginger.svg?style=flat-square)](https://pypi.python.org/pypi/logginger)\n[![image](https://img.shields.io/pypi/wheel/logginger.svg?style=flat-square)](https://pypi.python.org/pypi/logginger)\n[![image](https://img.shields.io/pypi/format/logginger.svg?style=flat-square)](https://pypi.python.org/pypi/logginger)\n[![image](https://img.shields.io/pypi/pyversions/logginger.svg?style=flat-square)](https://pypi.python.org/pypi/logginger)\n[![image](https://img.shields.io/pypi/status/logginger.svg?style=flat-square)](https://pypi.python.org/pypi/logginger)\n\n## Description\n\nA python package that provides logging tools such as handlers and formatter for logging.\nThis allows developers to use these tools to use in their python logging, and they have more control over the logging.\n\nAdditional features include:\n\n1. Logging to Slack (via webhook or token)\n2. Logging to File\n\n## Installation\n\n``` bash\npip install logginger\n```\n\n## Arguments\n\n- slack_token (str): The Slack API token if not using `webhook_url`\n  Generate a key at <https://api.slack.com/>\n- channel (str): The Slack channel to post to if not using `webhook_url`\n- webhook_url (str): The Slack webhook URL if using `webhook_url`\n- is_webhook (bool): Whether to use webhook_url or not (Defaults to `True`)\n- is_debug (bool): Doesn't send Slack messages if True (Defaults to `False`)\n- stack_trace (bool): Whether to include the stacktrace in the Slack message (Defaults to `True`)\n- username (str): The username to use for the Slack message (Not usable if using `webhook_url`)\n- icon_url (str): The icon URL to use for the Slack message (Not usable if using `webhook_url`)\n- icon_emoji (str): The icon emoji to use for the Slack message (Not usable if using `webhook_url`)\n- msg_len (int): The maximum length of the Slack message (Defaults to `1300`)\n- traceback_len (int): The maximum length of the stack_trace (Defaults to `700`)\n- fail_silent (bool): Whether to fail silently if the Slack API returns an error (Defaults to `False`)\n  Defaults to `False`. If your API key is invalid or for some other reason\n  the API call returns an error, this option will silently ignore the API\n  error. If you enable this setting, **make sure you have another log\n  handler** that will also handle the same log events, or they may be lost\n  entirely.\n\n## Example Python logging handler\n\nThis is how you use log_to_slack as a regular Python\nlogging handler. This example will send a error message to a slack\nchannel.\n\n``` python\nimport logging\nimport os\n\nfrom logginger import SlackLogHandler\nfrom logginger.formatters import NoStacktraceFormatter, DefaultFormatter\n\nWEBHOOK_URL = os.getenv(\"WEBHOOK_URL\")\n\nlogger = logging.getLogger(\"debug_application\")\nlogger.setLevel(logging.DEBUG)\n\ndefault_formatter = DefaultFormatter(\"%(levelprefix)s %(asctime)s (%(name)s) %(message)s\")\nno_stacktrace_formatter = NoStacktraceFormatter(\"%(levelprefix)s %(asctime)s (%(name)s) %(message)s\")\n\ndefault_handler = logging.StreamHandler()\ndefault_handler.setFormatter(default_formatter)\nlogger.addHandler(default_handler)\n\nslack_handler = SlackLogHandler(webhook_url=WEBHOOK_URL, stack_trace=True)\nslack_handler.setFormatter(no_stacktrace_formatter)\nslack_handler.setLevel(logging.ERROR)\nlogger.addHandler(slack_handler)\n\n# Main code\nlogger.debug(\"Test DEBUG\")\nlogger.info(\"Test INFO\")\nlogger.warning(\"Test WARNING\")\nlogger.error(\"Test ERROR\")\nlogger.fatal(\"Test FATAL\")\nlogger.critical(\"Test CRITICAL\")\n\ntry:\n    raise Exception(\"Test exception\")\nexcept Exception as e:\n    logger.exception(e)\n\n```\n\n## Slack message formatting\n\nThis example use a subclass that will send a formatted message to a\nSlack channel. [Learn More](https://api.slack.com/reference/surfaces/formatting)\n\n``` python\nclass CustomLogHandler(SlackLogHandler):\n    def build_msg(self, record):\n        message = \"> New message :\\n\" + record.getMessage()\n        return message\n```\n\n## License\n\nApache 2.0\n\nSee also: \n- <https://api.slack.com/terms-of-service>\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Logginger is a simple logging library that includes tools to extend the logging module.",
    "version": "0.0.5",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "76c0cc9dd2e7c3ba4e4a00e8820be22236065e7205b24fa5d258150703fe7cf9",
                "md5": "7e58b6934f3301816bdc4902ccb30485",
                "sha256": "41353ded00c286eaa3a27da863b0651d65794bacb6c51552b6fadbe31541a9f0"
            },
            "downloads": -1,
            "filename": "logginger-0.0.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7e58b6934f3301816bdc4902ccb30485",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 12100,
            "upload_time": "2024-05-10T18:38:47",
            "upload_time_iso_8601": "2024-05-10T18:38:47.415644Z",
            "url": "https://files.pythonhosted.org/packages/76/c0/cc9dd2e7c3ba4e4a00e8820be22236065e7205b24fa5d258150703fe7cf9/logginger-0.0.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "65f55c438854571af6d37e99401f40269ecb71c6c58eb735ca2fed559237a339",
                "md5": "fa2f8dc0d2a5e44b494e33750ad22f41",
                "sha256": "e40c0c6bd73ede5153a3ce01f061e79ed4e336d0297a28bc20c64f9c69c7faad"
            },
            "downloads": -1,
            "filename": "logginger-0.0.5.tar.gz",
            "has_sig": false,
            "md5_digest": "fa2f8dc0d2a5e44b494e33750ad22f41",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 11032,
            "upload_time": "2024-05-10T18:38:48",
            "upload_time_iso_8601": "2024-05-10T18:38:48.555610Z",
            "url": "https://files.pythonhosted.org/packages/65/f5/5c438854571af6d37e99401f40269ecb71c6c58eb735ca2fed559237a339/logginger-0.0.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-10 18:38:48",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "logginger"
}
        
Elapsed time: 0.75365s