Кажется, у меня возникают некоторые проблемы при попытке входа в мой проект python.
Я просто пытаюсь имитировать следующую конфигурацию:
Python Logging to MultipleНаправления
Однако вместо того, чтобы делать это внутри кода, я хотел бы иметь его в файле конфигурации.
Ниже приведен мой файл конфигурации:
[loggers]
keys=root
[logger_root]
handlers=screen,file
[formatters]
keys=simple,complex
[formatter_simple]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
[formatter_complex]
format=%(asctime)s - %(name)s - %(levelname)s - %(module)s : %(lineno)d - %(message)s
[handlers]
keys=file,screen
[handler_file]
class=handlers.TimedRotatingFileHandler
interval=midnight
backupCount=5
formatter=complex
level=DEBUG
args=('logs/testSuite.log',)
[handler_screen]
class=StreamHandler
formatter=simple
level=INFO
args=(sys.stdout,)
Проблема в том, что мой вывод на экран выглядит следующим образом:
2010-12-14 11: 39: 04,066 - root - ПРЕДУПРЕЖДЕНИЕ - 3
2010-12-14 11: 39: 04,066 - root - ERROR - 4
2010-12-14 11: 39: 04,066 - root - CRITICAL - 5
Мой файл выводится, но выглядит так же, как указано выше (хотя и с дополнительной информацией).Однако уровни отладки и информации также не выводятся.
Я на Python 2.7
Вот мой простой пример, показывающий сбой:
import os
import sys
import logging
import logging.config
sys.path.append(os.path.realpath("shared/"))
sys.path.append(os.path.realpath("tests/"))
class Main(object):
@staticmethod
def main():
logging.config.fileConfig("logging.conf")
logging.debug("1")
logging.info("2")
logging.warn("3")
logging.error("4")
logging.critical("5")
if __name__ == "__main__":
Main.main()