Name | logginger JSON |
Version |
0.0.5
JSON |
| download |
home_page | None |
Summary | Logginger is a simple logging library that includes tools to extend the logging module. |
upload_time | 2024-05-10 18:38:48 |
maintainer | None |
docs_url | None |
author | Hikmat Samadov |
requires_python | <4.0,>=3.10 |
license | None |
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.
[](https://pypi.python.org/pypi/logginger)
[](https://pypi.python.org/pypi/logginger)
[](https://pypi.python.org/pypi/logginger)
[](https://pypi.python.org/pypi/logginger)
[](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[](https://pypi.python.org/pypi/logginger)\n[](https://pypi.python.org/pypi/logginger)\n[](https://pypi.python.org/pypi/logginger)\n[](https://pypi.python.org/pypi/logginger)\n[](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"
}