2013-07-10 3 views
2

В log4net мы можем изменить уровень журнала в файле конфигурации xml во время выполнения от DEBUG до ERROR, например, и изменение вступит в силу немедленно.изменение уровня журнала python во время выполнения

есть ли способ сделать это в python? Я еще не понял, как это сделать.

Кроме того, по какой-либо причине, когда файл регистрации установлен без какой-либо папки (см. Пример конфигурации, которую я использую внизу - файл конфигурации словаря yaml), он не может вращать файлы. если я изменю его на любой другой путь, другой тот, в котором находится код, он работает как шарм и создается 20 файлов. Я буду рад получить любую помощь. спасибо!

словарь пример экстракта конфигурации:

rotatingFile: 
     class : logging.handlers.RotatingFileHandler 
     formatter: jajahFormater 
     level: DEBUG 
     filename: chs.log 
     maxBytes: 20 
     backupCount: 20 

ответ

-1

Из docsLogger.setLevel() использования на уровне регистратора и Handler.setLevel() на уровне обработчика

import logging 

my_logger = logging.getLogger('myloggername') #Assumes you have configured the logger somewhere 
my_logger.setLevel(logging.INFO) 
+1

Вопрос в том, как это сделать во время выполнения ... – Alon1980

+0

Вы можете определить его в файле конфигурации и изменить файл конфигурации. Но вам придется перезапустить процесс. Для _runtime_ я не знаю, что-то из коробки, хотя вы, вероятно, можете следить за изменениями в файле конфигурации и перезагружать протоколирование всякий раз, когда это происходит. В качестве альтернативы вы можете просто извлечь измененный параметр «log_level» и вызвать функцию 'setLevel()'. Но это нужно было бы сделать в процессе наблюдения или что-то – RedBaron

1

Вы действительно должны публикуемые два вопроса.

  1. .NET инфраструктура следит конфигурационный файл и автоматически загружает его, чтобы получить изменения, но Python не делает - так что вам нужно будет кодировать это самостоятельно.
  2. Файл chs.log в каталоге кода может быть открыт (например, в редакторе), что предотвратит опрокидывание - я не могу сказать без дополнительной информации.
+0

Я использовал обработчик процессов, чтобы проверить, есть ли в этом файле другие дескрипторы, и они не были. – Alon1980

Смежные вопросы