2025-05-27 15:46:31 +08:00

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