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
5
CHANGELOG.md
Normal file
5
CHANGELOG.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# giftwrap changelog
|
||||||
|
|
||||||
|
## 0.2.0
|
||||||
|
- Adds colorization to the logging
|
||||||
|
- Adds a CHANGELOG
|
43
giftwrap/color.py
Normal file
43
giftwrap/color.py
Normal file
@ -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 logging
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
from giftwrap.color import ColorStreamHandler
|
||||||
|
|
||||||
NAME = 'giftwrap'
|
NAME = 'giftwrap'
|
||||||
logger = None
|
logger = None
|
||||||
|
|
||||||
@ -29,7 +31,7 @@ def get_logger():
|
|||||||
return logger
|
return logger
|
||||||
|
|
||||||
logger = logging.getLogger(NAME)
|
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',
|
fmt = logging.Formatter(fmt='%(asctime)s %(levelname)s: %(message)s',
|
||||||
datefmt='%F %H:%M:%S')
|
datefmt='%F %H:%M:%S')
|
||||||
log_handler.setFormatter(fmt)
|
log_handler.setFormatter(fmt)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
argparse
|
argparse
|
||||||
|
colorama
|
||||||
pbr
|
pbr
|
||||||
GitPython==0.3.2.RC1
|
GitPython==0.3.2.RC1
|
||||||
giturlparse.py
|
giturlparse.py
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[metadata]
|
[metadata]
|
||||||
name = giftwrap
|
name = giftwrap
|
||||||
version = 0.1.0
|
version = 0.2.0
|
||||||
summary = giftwrap - A tool to build full-stack native system packages.
|
summary = giftwrap - A tool to build full-stack native system packages.
|
||||||
description-file =
|
description-file =
|
||||||
README.md
|
README.md
|
||||||
|
Loading…
Reference in New Issue
Block a user