|
|
|
|
|
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") |
|
|
|
|
|
|
|
|
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') |
|
|
|