{ "info": { "author": "Mathias Ose", "author_email": "mathias.ose@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Communications :: Chat", "Topic :: Office/Business :: Groupware" ], "description": "slacker_log_handler\n===================\n\n.. image:: https://img.shields.io/pypi/v/slacker_log_handler.svg?style=flat-square\n :target: https://pypi.python.org/pypi/slacker_log_handler\n\n.. image:: https://img.shields.io/pypi/wheel/slacker_log_handler.svg?style=flat-square\n :target: https://pypi.python.org/pypi/slacker_log_handler\n\n.. image:: https://img.shields.io/pypi/format/slacker_log_handler.svg?style=flat-square\n :target: https://pypi.python.org/pypi/slacker_log_handler\n\n.. image:: https://img.shields.io/pypi/pyversions/slacker_log_handler.svg?style=flat-square\n :target: https://pypi.python.org/pypi/slacker_log_handler\n\n.. image:: https://img.shields.io/pypi/status/slacker_log_handler.svg?style=flat-square\n :target: https://pypi.python.org/pypi/slacker_log_handler\n\nPython log handler that posts to a Slack channel. Posts to the Slack API\nusing https://github.com/os/slacker.\n\nFor a different implementation using webhooks instead of Slacker, see\nhttps://github.com/claudetech/python-slack-log or read\nhttp://www.pythian.com/blog/logging-for-slackers/\n\nCreated with the intention of using for a Django project, but some\neffort has been made to make it generic enough that any Python project\ncould use it.\n\nInstallation\n------------\n\n.. code-block:: bash\n\n pip install slacker-log-handler\n\nOptions\n-------\n\napi_key (required)\n~~~~~~~~~~~~~~~~~~\n\nGenerate a key at https://api.slack.com/\n\nchannel (required)\n~~~~~~~~~~~~~~~~~~\n\nSet which channel you want to post to, e.g. \"#general\".\n\nusername\n~~~~~~~~\n\nThe username that will post to Slack. Defaults to \"Python logger\".\n\nicon_url\n~~~~~~~~\n\nURL to an image to use as the icon for the logger user\n\nicon_emoji\n~~~~~~~~~~\n\nemoji to use as the icon. Overrides icon_url. If neither icon_url nor\nicon_emoji is set, :heavy_exclamation_mark: will be used.\n\nfail_silent\n~~~~~~~~~~~\nDefaults to False.\nIf your API key is invalid or for some other reason the API call returns an error,\nthis option will silently ignore the API error.\nIf you enable this setting, **make sure you have another log handler** that will also handle the same log events,\nor they may be lost entirely.\n\n\nDjango configuration\n--------------------\nLogging reference: https://docs.djangoproject.com/en/stable/topics/logging/\n\nThis example will send INFO and ERRORS to Slack, as well as errors to admin emails.\n\n- Set ``SLACK_API_KEY`` in your settings module.\n\n.. code-block:: python\n\n LOGGING = {\n 'version': 1,\n 'disable_existing_loggers': False,\n 'filters': {\n 'require_debug_false': {\n '()': 'django.utils.log.RequireDebugFalse'\n }\n },\n 'handlers': {\n 'mail_admins': {\n 'level': 'ERROR',\n 'filters': ['require_debug_false'],\n 'class': 'django.utils.log.AdminEmailHandler'\n },\n 'slack-error': {\n 'level': 'ERROR',\n 'api_key': SLACK_API_KEY,\n 'class': 'slacker_log_handler.SlackerLogHandler',\n 'channel': '#general'\n },\n 'slack-info': {\n 'level': 'INFO',\n 'api_key': SLACK_API_KEY,\n 'class': 'slacker_log_handler.SlackerLogHandler',\n 'channel': '#general'\n },\n 'loggers': {\n 'django.request': {\n 'handlers': ['mail_admins', 'slack-error', 'slack-info'],\n 'level': 'ERROR',\n 'propagate': True,\n },\n }\n }\n }\n\nExample Python logging handler\n------------------------------\n\nThis is how you use `slacker_log_handler` as a regular Python logging handler.\nThis example will send a error message to a slack channel.\n\n.. code-block:: python\n\n import logging\n from slacker_log_handler import SlackerLogHandler, NoStacktraceFormatter\n\n # Create slack handler\n slack_handler = SlackerLogHandler('my-channel-token', 'my-channel-name', stack_trace=True)\n\n # Create logger\n logger = logging.getLogger('debug_application')\n logger.addHandler(slack_handler)\n\n # OPTIONAL: Define a log message formatter.\n # If you have set stack_trace=True, any exception stack traces will be included as Slack message attachments.\n # You therefore need to use NoStacktraceFormatter as a base to exclude the trace from the main message text.\n formatter = NoStacktraceFormatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')\n slack_handler.setFormatter(formatter)\n\n # Define the minimum level of log messages you want to send to Slack\n slack_handler.setLevel(logging.DEBUG)\n\n # Test logging\n logger.error(\"Debug message from slack!\")\n\nSlack message formatting\n------------------------\n\nThis example use a subclass that will send a formatted message to a slack channel.\nReference: https://api.slack.com/docs/message-formatting\n\n.. code-block:: python\n\n class CustomLogHandler(SlackerLogHandler):\n def build_msg(self, record):\n message = \"> New message :\\n\" + record.getMessage()\n return message\n\nLicense\n-------\n\nApache 2.0\n\nSlacker is also under Apache 2.0.\n\nSee also: https://api.slack.com/terms-of-service\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/mathiasose/slacker_log_handler/archive/1.7.1.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mathiasose/slacker_log_handler", "keywords": "slack", "license": "", "maintainer": "", "maintainer_email": "", "name": "slacker-log-handler", "package_url": "https://pypi.org/project/slacker-log-handler/", "platform": "", "project_url": "https://pypi.org/project/slacker-log-handler/", "project_urls": { "Download": "https://github.com/mathiasose/slacker_log_handler/archive/1.7.1.tar.gz", "Homepage": "https://github.com/mathiasose/slacker_log_handler" }, "release_url": "https://pypi.org/project/slacker-log-handler/1.7.1/", "requires_dist": null, "requires_python": "", "summary": "Posts log events to Slack via API", "version": "1.7.1" }, "last_serial": 3899395, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "731e642bdbc2b27a2100fcc3147ebd98", "sha256": "f7f0b68688e14e0a75d3f7f0df816052a67deadbe9a3ac882c7cd4ed6f4227e1" }, "downloads": -1, "filename": "slacker_log_handler-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "731e642bdbc2b27a2100fcc3147ebd98", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2825, "upload_time": "2015-10-22T19:36:35", "url": "https://files.pythonhosted.org/packages/52/99/58a2367e2937a939c3ce1021d38e1035e2bf2a46fe9f3fff6486a0dbdc20/slacker_log_handler-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4b7d25401b0ac22bae1a6df61b7d956", "sha256": "c3107c971755410c71e4dc448bcbef014f8a6ed63837f14283dc48bd74b152d9" }, "downloads": -1, "filename": "slacker_log_handler-1.0.tar.gz", "has_sig": false, "md5_digest": "b4b7d25401b0ac22bae1a6df61b7d956", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5983, "upload_time": "2015-10-22T19:36:43", "url": "https://files.pythonhosted.org/packages/ae/89/e04b98aa169783e55e0c9059f9e295ed9b62215bcb7e4e8930fda2713752/slacker_log_handler-1.0.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "eeaed464ac62906803d0da8c1658c32f", "sha256": "af95e516ff58c9f25f47b87ed1e5497393cba2e72358d78b177f47605186bc7b" }, "downloads": -1, "filename": "slacker_log_handler-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "eeaed464ac62906803d0da8c1658c32f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2854, "upload_time": "2015-10-22T19:36:30", "url": "https://files.pythonhosted.org/packages/2f/0a/0b93617ce8c8d0dc677b2c3cb1ade9feea27d929c74b4149b2343193806e/slacker_log_handler-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "96e7d7268fae12f01cc6f21649a5471f", "sha256": "7d66f370dba12cc6cfed49eb78f8544d1787cc645c07ea68e8f316f7772d1efc" }, "downloads": -1, "filename": "slacker_log_handler-1.0.2.tar.gz", "has_sig": false, "md5_digest": "96e7d7268fae12f01cc6f21649a5471f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5990, "upload_time": "2015-10-22T19:36:39", "url": "https://files.pythonhosted.org/packages/cc/ab/5bc93dc69bd8a0cc896356f81766aa604d11f927e880c7e0208043c220d3/slacker_log_handler-1.0.2.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "de857beccaa0c789d0f34219dc2f5ea9", "sha256": "799183238bda2686826897cf29c978bc9f7b6c91b2ec07278d3cedcdd2e11a7d" }, "downloads": -1, "filename": "slacker_log_handler-1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "de857beccaa0c789d0f34219dc2f5ea9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5394, "upload_time": "2015-10-24T10:20:31", "url": "https://files.pythonhosted.org/packages/d1/ab/e0785557490d8aea9cf01caa609369567618ea45e6a0a485167e4d860339/slacker_log_handler-1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "16ed6cc2dfbe79449b3f848888a1ad9c", "sha256": "cc128ca9969e569f0edf14bf38eba4176b6d147fdfa0a64aae58fe78efe2764e" }, "downloads": -1, "filename": "slacker_log_handler-1.1.tar.gz", "has_sig": false, "md5_digest": "16ed6cc2dfbe79449b3f848888a1ad9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7034, "upload_time": "2015-10-24T10:20:36", "url": "https://files.pythonhosted.org/packages/5f/b2/274b94027b4cd78dbb83c8664ec1aa4db774b7c04c4f4bee408eedd1a83e/slacker_log_handler-1.1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "e6ed5be946a9d6cce12a6b6dc5500b79", "sha256": "63380d9e0cbb7f0f8e348f7dd59b9ea2ab4f0c630806ca0e7896621753c314a3" }, "downloads": -1, "filename": "slacker_log_handler-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e6ed5be946a9d6cce12a6b6dc5500b79", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5436, "upload_time": "2015-10-28T11:56:56", "url": "https://files.pythonhosted.org/packages/08/a0/5e7713f49a07a8a5a737ed37c1e9f6d79b564cbe4bf1e1eb5c89a4f368ae/slacker_log_handler-1.1.1-py2.py3-none-any.whl" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "cb095d1cdb178297cf59ae7a65f6966f", "sha256": "0981c3288684e89890b3a9a98e9b17aa24585d4dea1ade9863a05d5d9dbd13e3" }, "downloads": -1, "filename": "slacker_log_handler-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb095d1cdb178297cf59ae7a65f6966f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12828, "upload_time": "2016-04-06T16:45:57", "url": "https://files.pythonhosted.org/packages/18/b9/98d3dcc0a1a44c682438dabb6428923575a1c3b1d8262455760a08d29352/slacker_log_handler-1.2.0-py2.py3-none-any.whl" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "27a833287f614572f93309f542cb0a7d", "sha256": "63d830bab9c1955c1f1f6adfa28af0d493b3332d0e8f5982bd8fad5a5a336a12" }, "downloads": -1, "filename": "slacker_log_handler-1.3.0.tar.gz", "has_sig": false, "md5_digest": "27a833287f614572f93309f542cb0a7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7706, "upload_time": "2016-11-23T14:31:09", "url": "https://files.pythonhosted.org/packages/91/57/6976def6a6eeb6ed072568d7194df8311eeccd44be5b42529d9ed8f92b0c/slacker_log_handler-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "5e6d0af7db53e4f8129b8f149b9f3c78", "sha256": "99f00641765c8f7648fd3aebfe91d3712206ece4a60d164072d7e084d85e8257" }, "downloads": -1, "filename": "slacker_log_handler-1.4.0.tar.gz", "has_sig": false, "md5_digest": "5e6d0af7db53e4f8129b8f149b9f3c78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8303, "upload_time": "2017-04-18T16:25:34", "url": "https://files.pythonhosted.org/packages/c7/49/b622b90adcbdba852b2443cd2c07e61d87fe5eb0cd2ab1584d2db2496625/slacker_log_handler-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "cf5fe88d0a4657b146e1d138d49750f1", "sha256": "e756365ba2f2b74420f7eea0522dedbb24cacf43f160b9a84e9381eb360b890f" }, "downloads": -1, "filename": "slacker_log_handler-1.5.0.tar.gz", "has_sig": false, "md5_digest": "cf5fe88d0a4657b146e1d138d49750f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8522, "upload_time": "2017-05-18T20:58:04", "url": "https://files.pythonhosted.org/packages/9e/94/5f0c9aed9fa3c0a48559b83d1e90d5c71b90a50c4ad654a3b522cb211bf4/slacker_log_handler-1.5.0.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "869ca2001439cef45dd7c2e532d2323c", "sha256": "0b17108ba9be6f84eeaf91b517bb9b52fec714f865c718b2da79db7401b46197" }, "downloads": -1, "filename": "slacker_log_handler-1.6.1.tar.gz", "has_sig": false, "md5_digest": "869ca2001439cef45dd7c2e532d2323c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8804, "upload_time": "2017-07-07T19:56:09", "url": "https://files.pythonhosted.org/packages/ce/5c/0bfbfb0ac3fdf2347b772f59efc4e4caba2b6778cb9db1d5584626adb500/slacker_log_handler-1.6.1.tar.gz" } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "80600cf57c3740a97f0cd157b52b10a4", "sha256": "525354c08e06e48b5b540791096423a7d55bef9ff3bbdd543dabb0efca5e0c09" }, "downloads": -1, "filename": "slacker_log_handler-1.7.0.tar.gz", "has_sig": false, "md5_digest": "80600cf57c3740a97f0cd157b52b10a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8976, "upload_time": "2018-04-19T21:30:28", "url": "https://files.pythonhosted.org/packages/58/c1/e655871b0ff8a561cf25ab3056db9502f9d54f8080e2ddd996129813a92f/slacker_log_handler-1.7.0.tar.gz" } ], "1.7.1": [ { "comment_text": "", "digests": { "md5": "6aa7e3a6243730e85306bdd8f2eceb10", "sha256": "dbde7106c3d50c01e89d7910afef410ab8743a8a2941b859aa6983a6181d2471" }, "downloads": -1, "filename": "slacker_log_handler-1.7.1.tar.gz", "has_sig": false, "md5_digest": "6aa7e3a6243730e85306bdd8f2eceb10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9018, "upload_time": "2018-05-25T16:04:34", "url": "https://files.pythonhosted.org/packages/a2/87/42888ccac0b9e46b494d6409f225cfff82644470f6aaaba02ac20198feca/slacker_log_handler-1.7.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6aa7e3a6243730e85306bdd8f2eceb10", "sha256": "dbde7106c3d50c01e89d7910afef410ab8743a8a2941b859aa6983a6181d2471" }, "downloads": -1, "filename": "slacker_log_handler-1.7.1.tar.gz", "has_sig": false, "md5_digest": "6aa7e3a6243730e85306bdd8f2eceb10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9018, "upload_time": "2018-05-25T16:04:34", "url": "https://files.pythonhosted.org/packages/a2/87/42888ccac0b9e46b494d6409f225cfff82644470f6aaaba02ac20198feca/slacker_log_handler-1.7.1.tar.gz" } ] }