66 lines
1.6 KiB
Python
Executable File
66 lines
1.6 KiB
Python
Executable File
# 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
|