47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
import os
|
|
import logging
|
|
from datetime import datetime
|
|
|
|
|
|
def get_logger(root, name=None, debug=True):
|
|
# when debug is true, show DEBUG and INFO in screen
|
|
# when debug is false, show DEBUG in file and info in both screen&file
|
|
# INFO will always be in screen
|
|
# create a logger
|
|
logger = logging.getLogger(name)
|
|
# critical > error > warning > info > debug > notset
|
|
logger.setLevel(logging.DEBUG)
|
|
|
|
# define the formate
|
|
formatter = logging.Formatter('%(asctime)s: %(message)s', "%m/%d %H:%M")
|
|
# create another handler for output log to console
|
|
console_handler = logging.StreamHandler()
|
|
if debug:
|
|
console_handler.setLevel(logging.DEBUG)
|
|
else:
|
|
console_handler.setLevel(logging.INFO)
|
|
# create a handler for write log to file
|
|
logfile = os.path.join(root, 'run.log')
|
|
print('Creat Log File in: ', logfile)
|
|
file_handler = logging.FileHandler(logfile, mode='w')
|
|
file_handler.setLevel(logging.DEBUG)
|
|
file_handler.setFormatter(formatter)
|
|
console_handler.setFormatter(formatter)
|
|
# add Handler to logger
|
|
logger.addHandler(console_handler)
|
|
if not debug:
|
|
logger.addHandler(file_handler)
|
|
return logger
|
|
|
|
|
|
if __name__ == '__main__':
|
|
time = datetime.now().strftime('%Y%m%d%H%M%S')
|
|
print(time)
|
|
logger = get_logger('./log.txt', debug=True)
|
|
logger.debug('this is a {} debug message'.format(1))
|
|
logger.info('this is an info message')
|
|
logger.debug('this is a debug message')
|
|
logger.info('this is an info message')
|
|
logger.debug('this is a debug message')
|
|
logger.info('this is an info message')
|