import sys import logging as log import os from .Common import * logLevelMap = { "trace" : log.DEBUG, "debug" : log.DEBUG, "info" : log.INFO, "warning" : log.WARNING, "error" : log.ERROR, } class ExitOnExceptionHandler(log.StreamHandler): def emit(self, record): super().emit(record) if record.levelno == log.CRITICAL: sys.exit(-1) def DefaultLogTimestamp(): log_format = os.environ.get('ROLL_LOG_TIMESTAMP') if log_format is not None and log_format != "": log_format = int(log_format) if log_format >= 0 and log_format <= 2: return log_format else: log.warn("Invalid value " + str(log_format) + " of environment variable ROLL_LOG_LEVEL") return 0 def DefaultLogLevel(): log_level = os.environ.get('ROLL_LOG_LEVEL') if log_level is not None and log_level != "": if log_level in logLevelMap.keys(): return log_level else: log.warn("Invalid value " + log_level + " of environment variable ROLL_LOG_LEVEL") if IsOsMac(): return "debug" else: return "info" def LogTimestampHelp(): return "0: no timestamp, 1: [09:31AM], 2: [Sep 14 09:32:02]" def LogLevelHelp(): return "Log level: debug, info, warning, error" def InitLog(log_level, log_timestamp): log.addLevelName(log.DEBUG, "DEBU") log.addLevelName(log.INFO, "INFO") log.addLevelName(log.WARNING, "WARN") log.addLevelName(log.ERROR, "ERRO") log.addLevelName(log.FATAL, "FATA") # log.basicConfig(level=log.INFO, format='%(levelname).4s %(message)s') if log_timestamp == 0: log.basicConfig(handlers=[ExitOnExceptionHandler()], level=logLevelMap[log_level], format='%(levelname)s %(message)s', datefmt='%I:%M%p') elif log_timestamp == 1: log.basicConfig(handlers=[ExitOnExceptionHandler()], level=logLevelMap[log_level], format='%(levelname)s[%(asctime)s] %(message)s', datefmt='%I:%M%p') else: log.basicConfig(handlers=[ExitOnExceptionHandler()], level=logLevelMap[log_level], format='%(levelname)s[%(asctime)s] %(message)s', datefmt='%b %d %H:%M:%S')