43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
|
import logging
|
||
|
import sys
|
||
|
import os
|
||
|
|
||
|
from datetime import datetime
|
||
|
from ndct.core.paths import LOGGING_PATH
|
||
|
|
||
|
def log(log_message, level):
|
||
|
'''
|
||
|
Summary:
|
||
|
Logs information to logfile at the specified level.
|
||
|
|
||
|
Takes:
|
||
|
log_message: Information to log
|
||
|
level: Level of which to log the information at
|
||
|
'''
|
||
|
logger = logging.getLogger('ndct-logger')
|
||
|
|
||
|
log_message_types = {
|
||
|
'debug': logger.debug,
|
||
|
'info': logger.info,
|
||
|
'warning': logger.warning,
|
||
|
'error': logger.error,
|
||
|
'critical': logger.critical
|
||
|
}
|
||
|
|
||
|
if not logger.handlers:
|
||
|
logger.setLevel(logging.DEBUG)
|
||
|
|
||
|
formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(message)s')
|
||
|
|
||
|
file_handler = logging.FileHandler(LOGGING_PATH + 'log_' + datetime.now().strftime("%Y-%m-%d_%H:%M:%S") + '.log')
|
||
|
file_handler.setLevel(logging.DEBUG)
|
||
|
file_handler.setFormatter(formatter)
|
||
|
|
||
|
stream_handler = logging.StreamHandler(sys.stdout)
|
||
|
stream_handler.setFormatter(formatter)
|
||
|
|
||
|
logger.addHandler(file_handler)
|
||
|
logger.addHandler(stream_handler)
|
||
|
|
||
|
log_message_types[level](log_message)
|