| |
| |
| import os |
| import sys |
| import datetime |
|
|
|
|
| LEVELS = ['TRACE', 'DEBUG', 'INFO', 'WARN', 'ERROR'] |
| LEVELS_MAP = None |
|
|
|
|
| def init_map(): |
| global LEVELS_MAP, LEVELS |
| LEVELS_MAP = {} |
| for idx, level in enumerate(LEVELS): |
| LEVELS_MAP[level] = idx |
|
|
|
|
| def get_prio(level): |
| global LEVELS_MAP |
| if LEVELS_MAP is None: |
| init_map() |
| return LEVELS_MAP[level.upper()] |
|
|
|
|
| def print_log(s, level='INFO', end='\n', no_prefix=False): |
| pth_prio = get_prio(os.getenv('LOG', 'INFO')) |
| prio = get_prio(level) |
| if prio >= pth_prio: |
| if not no_prefix: |
| now = datetime.datetime.now() |
| prefix = now.strftime("%Y-%m-%d %H:%M:%S") + f'::{level.upper()}::' |
| print(prefix, end='') |
| print(s, end=end) |
| sys.stdout.flush() |
|
|