Metadata-Version: 2.0
Name: logcontrol
Version: 0.0.4
Summary: A logger manager for Python programs
Home-page: https://github.com/brandonmpace/logcontrol
Author: Brandon M. Pace
Author-email: brandonmpace@gmail.com
License: GNU Lesser General Public License v3 or later
Keywords: debug logging logger level control manager
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.6.5
Description-Content-Type: text/x-rst

**logcontrol:** A logger manager for Python programs

It provides:  
  * Centralized control of log level (per-group)  
  * Logging for exceptions and excessive runtime  

Original use case:  
  * Python GUI program containing many packages and modules  
  * Each source file that logs creates a proper logger for use within that file
    * e.g. logger = logging.getLogger(\_\_name__)

    * This allows a good logging hierarchy for control at a central point  
  * I wanted to simplify enabling debug level for specific packages or groups  

Installation:  
  * pip install logcontrol  

    (Tested for Python >=3.6.5 on Linux (Ubuntu) and Windows 7/10)

Usage:
    * example (where otherpackage and anotherpackage are example names)::

        # imports of fictitious packages
        import otherpackage
        import anotherpackage

        # import logging for easy access to log levels
        import logging
        import logcontrol

        # Register loggers you wish to control.
        # You can have user-friendly names for the groups if you wish:
        logcontrol.register_logger(otherpackage.logger, group='Other Package')

        # Set output file for the root logger:
        logcontrol.set_log_file('main_log.txt')

        # Enable specific log levels per-group:
        logcontrol.set_level(logging.DEBUG, group='Other Package')

        # Make specific groups log to console while debugging:
        logcontrol.log_to_console(group='Other Package')

        # You can even disable or enable propagation per-group:
        logcontrol.disable_propagation(group='Other Package')
        logcontrol.enable_propagation(group='Other Package')

        # Loggers added to the same group will get the same configuration.
        # This would automatically set DEBUG level and attach the console logging handler:
        logcontrol.register_logger(anotherpackage.module.logger, group='Other Package')

        # You can get a dict of group names with level names (good for populating a debug/log control popup):
        logcontrol.group_level_names()

        # For convenience, the predefined log levels are available:
        #     - as integers via logcontrol.log_level_integers
        #     - as strings via logcontrol.log_level_strings
        #
        # This makes it easy to display them in a combo box for users to choose.



