0

Use a terse logging line if --verbose is not specified

This commit is contained in:
Andrew Chin
2011-11-03 20:41:02 -04:00
parent 2dc1496432
commit 42593bab58
2 changed files with 42 additions and 19 deletions

View File

@@ -106,32 +106,47 @@ from overviewer_core import googlemap, rendernode
helptext = """
%prog [OPTIONS] <World # / Name / Path to World> <tiles dest dir>"""
def configure_logger():
def configure_logger(options=None):
"Configures the root logger to our liking"
if not options:
verbose = False
else:
verbose = options.verbose
logger = logging.getLogger()
outstream = sys.stderr
if platform.system() == 'Windows':
# Our custom output stream processor knows how to deal with select ANSI
# color escape sequences
outstream = util.WindowsOutputStream()
formatter = util.ANSIColorFormatter()
formatter = util.ANSIColorFormatter(verbose)
elif sys.stderr.isatty():
# terminal logging with ANSI color
formatter = util.ANSIColorFormatter()
formatter = util.ANSIColorFormatter(verbose)
else:
# Let's not assume anything. Just text.
formatter = util.DumbFormatter()
formatter = util.DumbFormatter(verbose)
logger = logging.getLogger()
handler = logging.StreamHandler(outstream)
handler.setFormatter(formatter)
logger.addHandler(handler)
if hasattr(logger, 'overviewerHandler'):
# we have already set up logging so just replace the formatter
# this time with the new values from options
logger.overviewerHandler.setFormatter(formatter)
logger.setLevel(logger.level + 10*options.quiet)
logger.setLevel(logger.level - 10*options.verbose)
else:
logger.overviewerHandler = logging.StreamHandler(outstream)
logger.overviewerHandler.setFormatter(formatter)
logger.addHandler(logger.overviewerHandler)
logger.setLevel(logging.INFO)
def main():
# bootstrap the logger with defaults
configure_logger()
try:
@@ -173,6 +188,8 @@ def main():
options, args = parser.parse_args()
# the details of the logger options can depend on the command line options
configure_logger(options)
if options.version:
try:
@@ -316,11 +333,6 @@ dir but you forgot to put quotes around the directory, since it contains spaces.
else:
north_direction = 'auto'
logging.getLogger().setLevel(
logging.getLogger().level + 10*options.quiet)
logging.getLogger().setLevel(
logging.getLogger().level - 10*options.verbose)
if options.changelist:
try:
changefile = open(options.changelist,'w+')

View File

@@ -224,13 +224,17 @@ class HighlightingFormatter(logging.Formatter):
"""Base class of our custom formatter
"""
fmtstr = '%(fileandlineno)-18s:PID(%(pid)s):%(asctime)s ' \
'%(levelname)-8s %(message)s'
datefmt = "%H:%M:%S"
datefmt = "%Y-%m-%d %H:%M:%S"
funcName_len = 15
def __init__(self):
logging.Formatter.__init__(self, self.fmtstr, self.datefmt)
def __init__(self, verbose=False):
if verbose:
fmtstr = '%(fileandlineno)-18s %(pid)s %(asctime)s ' \
'%(levelname)-8s %(message)s'
else:
fmtstr = '%(asctime)s ' '%(shortlevelname)-1s%(message)s'
logging.Formatter.__init__(self, fmtstr, self.datefmt)
def format(self, record):
"""Add a few extra options to the record
@@ -245,7 +249,14 @@ class HighlightingFormatter(logging.Formatter):
funcName
The function name truncated/padded to a fixed width characters
shortlevelname
The level name truncated to 1 character
"""
record.shortlevelname = record.levelname[0] + ' '
if record.levelname == 'INFO': record.shortlevelname = ''
record.pid = os.getpid()
record.fileandlineno = "%s:%s" % (record.filename, record.lineno)