Skip to content
Snippets Groups Projects
Select Git revision
  • 53f9fc90571ece5f81fdd5c392fd041534f7ee73
  • master default protected
  • gec-95-add-filter-skymodel
  • gec-105-lint-skymodel-filter
  • add-coverage-badge
  • releases/1.6
  • releases/1.5
  • rap-457-implement-ci-v2
  • test_heroku
  • action-python-publish
  • v1.7.1
  • v1.7.0
  • v1.6.2
  • v1.6.1
  • v1.6.post1
  • v1.6
  • v1.5.1
  • v1.5.0
  • v1.4.11
  • v1.4.10
  • v1.4.9
  • v1.4.8
  • v1.4.7
  • v1.4.6
  • v1.4.5
  • v1.4.4
  • v1.4.3
  • v1.4.2
  • v1.4.1
  • v1.4.0
30 results

_logging.py

  • David Rafferty's avatar
    David Rafferty authored
    53f9fc90
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    _logging.py 1.21 KiB
    # -*- coding: utf-8 -*-
    #
    # Defines the custom logger
    
    import logging
    
    def add_coloring_to_emit_ansi(fn):
        """
        colorize the logging output
        """
        # add methods we need to the class
        def new(*args):
            levelno = args[1].levelno
            if(levelno>=50):
                color = '\x1b[31m' # red
            elif(levelno>=40):
                color = '\x1b[31m' # red
            elif(levelno>=30):
                color = '\x1b[33m' # yellow
            elif(levelno>=20):
                color = '\x1b[32m' # green
            elif(levelno>=10):
                color = '\x1b[35m' # pink
            else:
                color = '\x1b[0m' # normal
            args[1].msg = color + args[1].msg +  '\x1b[0m'  # normal
            return fn(*args)
        return new
    
    # set the logging colors
    logging.StreamHandler.emit = add_coloring_to_emit_ansi(logging.StreamHandler.emit)
    # set the logging format and default level (info)
    logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.INFO)
    
    def setLevel(level):
        """
        Change verbosity
        """
        if level == 'warning':
            logging.root.setLevel(logging.WARNING)
        elif level == 'info':
            logging.root.setLevel(logging.INFO)
        elif level == 'debug':
            logging.root.setLevel(logging.DEBUG)