Код: Выделить всё
import inspect
import logging
def customLogger(FileHandlerlogLevel, ConsoleHandlerLogLevel, file_path_and_name):
'''
- logLevel input values: DEBUG, INFO, WARNING, ERROR, CRITICAL
'''
# Gets the name of the class / method from where this method is called
loggerName = inspect.stack()[1][3]
logger = logging.getLogger(loggerName)
logger.setLevel(logging.DEBUG)
fileHandler = logging.FileHandler(file_path_and_name, mode="w")
fileHandler.setLevel(FileHandlerlogLevel)
formatter = logging.Formatter('%(name)s - %(lineno)d - %(asctime)s - %(levelname)s - %(message)s',
datefmt="%m/%d/%Y %I:%M:%S %p")
fileHandler.setFormatter(formatter)
logger.addHandler(fileHandler)
stream_handler = logging.StreamHandler()
stream_handler.setLevel(ConsoleHandlerLogLevel)
stream_handler.setFormatter(formatter)
logger.addHandler(stream_handler)
return logger
test_logger = customLogger(logging.DEBUG, logging.DEBUG, "test_loggerv01.log")
test_logger.info("test 01")
Когда я запускаю сценарий в первый раз, вот что показывает консоль (Spyder):< /p>
Код: Выделить всё
In [1]: runfile('C:/Users/aardem/Python_AA/AB/Corproates_Prj/custom_logger_andrea_v02.py', wdir='C:/Users/aardem/Python_AA/AB/Corproates_Prj')
- 36 - 07/19/2018 06:32:22 PM - INFO - test 01
Затем я меняю информационное сообщение на «test 02» (последняя строка моего кода), сохраняю и повторно запускаю script.
Теперь консоль показывает следующее:
Код: Выделить всё
In [2]: runfile('C:/Users/aardem/Python_AA/AB/Corproates_Prj/custom_logger_andrea_v02.py', wdir='C:/Users/aardem/Python_AA/AB/Corproates_Prj')
- 36 - 07/19/2018 06:32:34 PM - INFO - test 02
- 36 - 07/19/2018 06:32:34 PM - INFO - test 02
Код: Выделить всё
test_logger.info("test 03")
Код: Выделить всё
In [3]: runfile('C:/Users/aardem/Python_AA/AB/Corproates_Prj/custom_logger_andrea_v02.py', wdir='C:/Users/aardem/Python_AA/AB/Corproates_Prj')
- 37 - 07/19/2018 06:38:20 PM - INFO - test 03
- 37 - 07/19/2018 06:38:20 PM - INFO - test 03
- 37 - 07/19/2018 06:38:20 PM - INFO - test 03
Та же проблема возникает с данными, сохраненными в файле «test_loggerv01.log».
Спасибо. ты
Подробнее здесь: https://stackoverflow.com/questions/514 ... ted-output
Мобильная версия