Не удается записать в файл журнала с помощью модуля журнала

1
ts = str(datetime.datetime.now())
log = "DIF_logfile_" + ts
logging.basicConfig(filename=log, format='%(asctime)s %(message)s', filemode='w')
logger = logging.getLogger()
config.read(sys.argv[1])
mode = logger.error
logger.setLevel(mode)
for tbl in table:
    try:hive_tbl = config.get(tbl, "hive_tbl")
    except:logger.error("Table doesn't exists")
    #except:print "Table doesn't exists"

Когда переданное значение tbl ошибочно, я не могу написать исключение в файл журнала, но если я распечатаю его в консоли. Я передаю значение tbl из файла конфигурации.

  • 1
    ts = str(datetime.datetime.now()) log = "DIF_logfile_" + ts logging.basicConfig(filename=log, format='%(asctime)s %(message)s', filemode='w') logger = logging.getLogger() config.read(sys.argv[1]) mode = logger.error logger.setLevel(mode) Это первая часть кода
  • 1
    Пожалуйста, отредактируйте ваш вопрос, затем вставьте код в ваш вопрос
Показать ещё 3 комментария
Теги:
logging
try-except

1 ответ

0

Этот код не должен работать, эти строки:

logger = logging.getLogger()
mode = logger.error
logger.setLevel(mode)

Должно быть так:

logger = logging.getLogger()
mode = logging.ERROR
logger.setLevel(mode)

После того как я сменил их, это сработало. Еще одно упоминание: убедитесь, что эти строки:

ts = str(datetime.datetime.now())
log = "DIF_logfile_"+ts

Создайте правильное имя файла, они не были в моей системе

  • 0
    Ваш код тоже не работает. извините, "mode = logger.error" печатал ошибку, на самом деле я написал "mode = logging.error" в моей программе. Я передаю режим из файла конфигурации, это проблема ?, когда я закомментирую logger.setLevel (mode), он работает, в режиме logging.warning по умолчанию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню