Adding colorization to the logging
This is just a 'nice' feature to have. As we start building out more extensive logging, it will help to be able to look at the logs in a more human-parseable manner.
This commit is contained in:
parent
f0d5fa3c12
commit
f0c3c08939
|
@ -0,0 +1,5 @@
|
|||
# giftwrap changelog
|
||||
|
||||
## 0.2.0
|
||||
- Adds colorization to the logging
|
||||
- Adds a CHANGELOG
|
|
@ -0,0 +1,43 @@
|
|||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
||||
|
||||
# Copyright 2014, Craig Tracey <craigtracey@gmail.com>
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
|
||||
from colorama import AnsiToWin32, Fore, Style
|
||||
from logging import INFO, DEBUG, WARNING, ERROR, CRITICAL, StreamHandler
|
||||
|
||||
|
||||
class ColorStreamHandler(StreamHandler):
|
||||
|
||||
log_colors = {
|
||||
INFO: Fore.GREEN,
|
||||
DEBUG: Fore.CYAN,
|
||||
WARNING: Fore.YELLOW,
|
||||
ERROR: Fore.RED,
|
||||
CRITICAL: Fore.RED,
|
||||
}
|
||||
|
||||
def __init__(self, stream):
|
||||
StreamHandler.__init__(self, AnsiToWin32(stream).stream)
|
||||
|
||||
@property
|
||||
def is_tty(self):
|
||||
isatty = getattr(self.stream, 'isatty', None)
|
||||
return isatty and isatty()
|
||||
|
||||
def format(self, record):
|
||||
msg = StreamHandler.format(self, record)
|
||||
if self.is_tty:
|
||||
msg = self.log_colors[record.levelno] + msg + Style.RESET_ALL
|
||||
return msg
|
|
@ -18,6 +18,8 @@
|
|||
import logging
|
||||
import sys
|
||||
|
||||
from giftwrap.color import ColorStreamHandler
|
||||
|
||||
NAME = 'giftwrap'
|
||||
logger = None
|
||||
|
||||
|
@ -29,7 +31,7 @@ def get_logger():
|
|||
return logger
|
||||
|
||||
logger = logging.getLogger(NAME)
|
||||
log_handler = logging.StreamHandler(sys.stdout)
|
||||
log_handler = ColorStreamHandler(sys.stdout)
|
||||
fmt = logging.Formatter(fmt='%(asctime)s %(levelname)s: %(message)s',
|
||||
datefmt='%F %H:%M:%S')
|
||||
log_handler.setFormatter(fmt)
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
argparse
|
||||
colorama
|
||||
pbr
|
||||
GitPython==0.3.2.RC1
|
||||
giturlparse.py
|
||||
|
|
Loading…
Reference in New Issue