slackpy 2.2.2
A Simple and Human Friendly Slack Client for Logging.
License: MIT
Keywords: Slack,Slack Client

.. image:: https://img.shields.io/pypi/v/slackpy.svg
    :target: https://pypi.python.org/pypi/slackpy

.. image:: https://img.shields.io/pypi/dm/slackpy.svg
    :target: https://pypi.python.org/pypi/slackpy

.. image:: https://travis-ci.org/iktakahiro/slackpy.svg?branch=master
    :target: https://travis-ci.org/iktakahiro/slackpy

slackpy
=======

A Simple and Human Friendly `Slack`_ Client for Logging.

Use Case
--------

- Web Application
- NEW! `AWS Lambda`_
- Bash Script

Install
-------

.. code:: sh

    pip install slackpy

Dependencies
------------

-  requests

Sample Code
-----------

.. code:: python

    import slackpy

    INCOMING_WEB_HOOK = 'your_web_hook_url'
    CHANNEL = '#general'
    USER_NAME = 'Logger'
    ICON_URL = 'http://lorempixel.com/48/48'

    # Create a new instance.
    logging = slackpy.SlackLogger(INCOMING_WEB_HOOK, CHANNEL, USER_NAME, ICON_URL)

    # You can set a log level. The default level is INFO.
    logging.set_log_level(slackpy.LogLv.DEBUG) # Or logging.set_log_level(10)

    ## Minimum Parameter
    ## logging = slackpy.SlackLogger(INCOMING_WEB_HOOK)

    # Simple Usage
    logging.info('INFO Message')

    # LogLevel's only required parameter is "message", all others are optional.

    # LogLevel: DEBUG
    logging.debug(message='DEBUG Message', title='DEBUG Title', fields='')

    # LogLevel: INFO
    logging.info(message='INFO Message', title='INFO Title', fields='')

    # LogLevel: WARN
    logging.warn(message='WARN Message', title='WARN Title', fields='')

    # LogLevel: ERROR
    logging.error(message='ERROR Message', title='ERROR Title', fields='')

    # LogLevel: CUSTOM
    logging.message(message='CUSTOM Message', title='CUSTOM Title', color='good',
                    fields=[{"title": "CUSTOM", "value": "test", "short": True}],
                    log_level=40)

    # Title Link (New v2.1.0)
    logging.info(message='INFO Message', title='slackpy Repository here',
                 title_link='https://github.com/iktakahiro/slackpy')


+-----------+----------------+------------------------+
| Method    | LogLevel       | Color                  |
+===========+================+========================+
| debug()   | DEBUG (10)     | #03A9F4 (Light Blue)   |
+-----------+----------------+------------------------+
| info()    | INFO (20)      | good (green)           |
+-----------+----------------+------------------------+
| warn()    | WARNING (30)   | warning (orange)       |
+-----------+----------------+------------------------+
| error()   | ERROR (40)     | danger (red)           |
+-----------+----------------+------------------------+

The definition of the log level is based on the standard library.
(https://docs.python.org/3.4/library/logging.html#levels)

Command line
------------

.. code:: sh

    export SLACK_INCOMING_WEB_HOOK='your_web_hook_url'

    # LogLevel: DEBUG
    slackpy -c '#your_channel' -m 'DEBUG Message' -l 10

    # LogLevel: INFO
    slackpy -c '#your_channel' -m 'INFO Message' -l 20

    # LogLevel: WARN
    slackpy -c '#your_channel' -m 'WARN Message' -l 30

    # LogLevel: ERROR
    slackpy -c '#your_channel' -m 'ERROR Message' -l 40

    # LogLevel: DEBUG (without specifying #channel)
    slackpy -m 'DEBUG Message' -l 10

    # LogLevel: INFO (with Message Title)
    slackpy -c '#your_channel' -t 'INFO Message Title' -m 'INFO Message' -l 20

For AWS Lamdba
--------------

.. code:: sh

   # First, pip install to top of project directory.
   pip install slackpy -t .

   # Second, archive your source code and dependency packages.
   zip -r src.zip lambda_function.py slackpy enum requests

   # Finally, upload src.zip

About Versioning
----------------

slackpy is following `Semantic Versioning 2.0.0 <http://semver.org/spec/v2.0.0.html>`_.

.. _Slack: https://slack.com

.. _AWS Lambda: https://aws.amazon.com/lambda/