Spaces:
Running
Running
# Copyright (c) Alibaba, Inc. and its affiliates. | |
import logging | |
_logger = logging.getLogger('nls') | |
try: | |
from logging import NullHandler | |
except ImportError: | |
class NullHandler(logging.Handler): | |
def emit(self, record): | |
pass | |
_logger.addHandler(NullHandler()) | |
_traceEnabled = False | |
__LOG_FORMAT__ = '%(asctime)s - %(levelname)s - %(message)s' | |
__all__=['enableTrace', 'dump', 'error', 'warning', 'debug', 'trace', | |
'isEnabledForError', 'isEnabledForDebug', 'isEnabledForTrace'] | |
def enableTrace(traceable, handler=logging.StreamHandler()): | |
""" | |
enable log print | |
Parameters | |
---------- | |
traceable: bool | |
whether enable log print, default log level is logging.DEBUG | |
handler: Handler object | |
handle how to print out log, default to stdio | |
""" | |
global _traceEnabled | |
_traceEnabled = traceable | |
if traceable: | |
_logger.addHandler(handler) | |
_logger.setLevel(logging.DEBUG) | |
handler.setFormatter(logging.Formatter(__LOG_FORMAT__)) | |
def dump(title, message): | |
if _traceEnabled: | |
_logger.debug('### ' + title + ' ###') | |
_logger.debug(message) | |
_logger.debug('########################################') | |
def error(msg): | |
_logger.error(msg) | |
def warning(msg): | |
_logger.warning(msg) | |
def debug(msg): | |
_logger.debug(msg) | |
def trace(msg): | |
if _traceEnabled: | |
_logger.debug(msg) | |
def isEnabledForError(): | |
return _logger.isEnabledFor(logging.ERROR) | |
def isEnabledForDebug(): | |
return _logger.isEnabledFor(logging.Debug) | |
def isEnabledForTrace(): | |
return _traceEnabled | |