Spaces:
Sleeping
Sleeping
import logging | |
import os | |
import sys | |
import time | |
project_name = os.getcwd().split('/')[-1] | |
_logger = logging.getLogger(project_name) | |
_logger.addHandler(logging.StreamHandler()) | |
def _log_prefix(): | |
# Returns (filename, line number) for the stack frame. | |
def _get_file_line(): | |
# pylint: disable=protected-access | |
# noinspection PyProtectedMember | |
f = sys._getframe() | |
# pylint: enable=protected-access | |
our_file = f.f_code.co_filename | |
f = f.f_back | |
while f: | |
code = f.f_code | |
if code.co_filename != our_file: | |
return code.co_filename, f.f_lineno | |
f = f.f_back | |
return '<unknown>', 0 | |
# current time | |
now = time.time() | |
now_tuple = time.localtime(now) | |
now_millisecond = int(1e3 * (now % 1.0)) | |
# current filename and line | |
filename, line = _get_file_line() | |
basename = os.path.basename(filename) | |
s = '%02d-%02d %02d:%02d:%02d.%03d %s:%d] ' % ( | |
now_tuple[1], # month | |
now_tuple[2], # day | |
now_tuple[3], # hour | |
now_tuple[4], # min | |
now_tuple[5], # sec | |
now_millisecond, | |
basename, | |
line) | |
return s | |
def logging_verbosity(verbosity=0): | |
_logger.setLevel(verbosity) | |
def debug(msg, *args, **kwargs): | |
_logger.debug('D ' + project_name + ' ' + _log_prefix() + msg, *args, **kwargs) | |
def info(msg, *args, **kwargs): | |
_logger.info('I ' + project_name + ' ' + _log_prefix() + msg, *args, **kwargs) | |
def warn(msg, *args, **kwargs): | |
_logger.warning('W ' + project_name + ' ' + _log_prefix() + msg, *args, **kwargs) | |
def error(msg, *args, **kwargs): | |
_logger.error('E ' + project_name + ' ' + _log_prefix() + msg, *args, **kwargs) | |
def fatal(msg, *args, **kwargs): | |
_logger.fatal('F ' + project_name + ' ' + _log_prefix() + msg, *args, **kwargs) | |