Python с использованием метода basicConfig для входа в консоль и файл

Я не знаю, почему этот код печатает на экране, но не в файл? Файл «example1.log» создан, но там ничего не написано.

#!/usr/bin/env python3 import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(message)s', handlers=[logging.FileHandler("example1.log"), logging.StreamHandler()]) logging.debug('This message should go to the log file and to the console') logging.info('So should this') logging.warning('And this, too') 

Я «обходил» эту проблему, создавая объект ведения журнала ( пример кода ), но он продолжает подслушивать меня, почему метод basicConfig () не прошел?

PS. Если я изменю вызов basicConfig, выполните следующие действия:

 logging.basicConfig(level=logging.DEBUG, filename="example2.log", format='%(asctime)s %(message)s', handlers=[logging.StreamHandler()]) 

Затем все журналы находятся в файле, и в консоли ничего не отображается

    3 Solutions collect form web for “Python с использованием метода basicConfig для входа в консоль и файл”

    Я не могу воспроизвести его на Python 3.3. Сообщения записываются как на экран, так и на 'example2.log' . На Python <3.3 он создает файл, но он пуст.

    Код:

     from logging_tree import printout # pip install logging_tree printout() 

    показывает, что FileHandler() не подключен к корневому журналу на Python <3.3.

    Документы для logging.basicConfig() говорят, что аргумент handlers добавлен в Python 3.3. Аргумент handlers не упоминается в документации Python 3.2.

    Попробуйте эту работу отлично (протестировано в python 2.7) для консоли и файла

     # set up logging to file logging.basicConfig( filename='twitter_effect.log', level=logging.INFO, format= '[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s', datefmt='%H:%M:%S' ) # set up logging to console console = logging.StreamHandler() console.setLevel(logging.DEBUG) # set a format which is simpler for console use formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s') console.setFormatter(formatter) # add the handler to the root logger logging.getLogger('').addHandler(console) logger = logging.getLogger(__name__) 

    В приведенном ниже примере вы можете указать назначение журнала в зависимости от его уровня. Например, приведенный ниже код позволяет всем журналам через уровень INFO перейти в файл журнала, а все выше уровня ERROR – на консоль.

     import logging logging.root.handlers = [] logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO , filename='ex.log') # set up logging to console console = logging.StreamHandler() console.setLevel(logging.ERROR) # set a format which is simpler for console use formatter = logging.Formatter('%(asctime)s : %(levelname)s : %(message)s') console.setFormatter(formatter) logging.getLogger("").addHandler(console) logging.debug('debug') logging.info('info') logging.warning('warning') logging.error('error') logging.exception('exp') 
    Python - лучший язык программирования в мире.