Metadata-Version: 2.1
Name: service-logging
Version: 0.1.1
Summary: Python logging configurations done The Right Way for programs that may run in the foreground or background
Home-page: https://github.com/rpatterson/service-logging
Author: Ross Patterson
Author-email: me@rpatterson.net
License: MIT
Description: ==============================================================================
        service-logging
        ==============================================================================
        Python logging configurations done The Right Way
        ------------------------------------------------------------------------------
        
        .. image:: https://github.com/rpatterson/service-logging/workflows/Run%20linter,%20tests%20and,%20and%20release/badge.svg
        
        TL;DR:
        
          ``logging.basicConfig()`` is very often not enough, leading to DRY
          violations.  Use ``service-logging`` to log to syslog or the Windows event
          log when running in the background, and log to stderr when running in the
          foreground, both with well formatted messages.
        
        Using logging correctly is often both usage and OS specific.  For a usage
        specific example, when developing or troubleshooting a daemon and/or service
        it is often useful to use one logging configuration when running in the
        foreground in a shell and another when running in the background.  For an OS
        specific example, when running in the background a daemon and/or service
        should use the appropriate logging service for that system so that logging
        metadata is correct (severity, facility, etc.), but the right way to do that
        is OS specific.  Furthermore, deciding between these configurations requires
        logic that cannot be done through the simple configuration mechanisms provided
        by Python's ``logging.config``.
        
        Given these realities, logging is often not done "The Right Way", and/or is
        difficult to adjust for debugging/testing vs background.  ``service-logging``
        aims to address this by providing the logic to choose between correct logging
        configurations for different usages and OSes.  It also provides several ways
        to use these configurations, making the depth of commitment opt-in.
        
        Installation
        ============
        
        Install using any tool for installing standard Python 3 distributions such as `pip`_::
        
          $ sudo pip3 install service-logging
        
        
        Usage
        =====
        
        Use ``servicelogging.basicConfig()`` to add an OS and usage specific root
        logging hander::
        
          >>> import servicelogging
          >>> servicelogging.basicConfig()
        
        The command-line script also supports wrapping another Python script with logging
        configured::
        
          $ python -m servicelogging foreground_demo.py
          $ service-logging foreground_demo.py
        
        See the command-ling help for details on options and arguments::
        
          $ service-logging --help
          usage: service-logging [-h] [--level LEVEL] script
        
          python logging configurations done The Right Way, top-level package.
        
          positional arguments:
            script         The Python script to run after configuring logging
        
          optional arguments:
            -h, --help     show this help message and exit
            --level LEVEL  The level of messages to log at or above (default: 20)
        
        Or if you just want the appropriate handler and formatter to use as you'd like
        in your code, you can use ``servicelogging.choose_handler()``::
        
          >>> import servicelogging
          >>> handler = servicelogging.choose_handler()
        
        
        ----------------------------
        TODO
        ----------------------------
        Features for future releases
        ____________________________
        
        Support alternate logging configuration options:
        
          Make sure that the approach is compatible with the various Python
          ``logging.config`` options.
        
        Anything else you find youself doing over and over:
        
          Submit a PR and make an argument for why a change would be useful in the
          vast majority of cases.
        
        
        .. _pip: https://pip.pypa.io/en/stable/installing/
        
Keywords: logging syslog nteventlog console
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: System :: Logging
Classifier: Topic :: Utilities
Requires-Python: >=2.7
Description-Content-Type: text/x-rst
Provides-Extra: dev
Provides-Extra: loguru
