Python-Protokollierung und Pydev-Debugger?

Bearbeiten:

ie Verwendung von Liclipse 1.2.1 anstelle von 1.3.0 oder 1.4.0 funktioniert einwandfrei. Änderungsprotokoll zeigt sowohl Pydev 3.9.1- als auch Eclipse 4.4.1-Updates für 1.3.0 an. Scheint das Debuggen der Protokollierung zu unterbrechen.

Verwenden Sie den Liclipse- und Pydev-Debugger (und CPython) mit dem folgenden Codebeispiel, um diesen Fehler zu erhalten:

 logging.config.dictConfig(config)
 File "C:\Python27\lib\logging\config.py", line 794, in dictConfig
   dictConfigClass(config).configure()
 File "C:\Python27\lib\logging\config.py", line 576, in configure
   '%r: %s' % (name, e))
 ValueError: Unable to configure handler 'console': 'DictConfigurator' object has no attribute 'startswith'

Es gibt kein Problem ohne Debugging. Benötigt das Protokollierungsmodul eine Ausführungsumgebung und funktioniert es nur?

Hier ist das verwendete Codebeispiel:

import logging.config
import yaml

def setup_logging():    
    default_path = 'logger.conf' 
    default_level = logging.DEBUG

    if os.path.exists(default_path):
        with open(default_path, 'rt') as f:
            config = yaml.load(f.read())
        logging.config.dictConfig(config)
    else:
        logging.basicConfig(level=default_level)

Und hier ist meine logger.conf:

version: 1
disable_existing_loggers: False

formatters:
    simple:
        format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
    lineInfo:
        format: "%(asctime)s - Line: %(lineno)d - %(name)s - %(levelname)s - %(message)s"

handlers:
    console:
        class: logging.StreamHandler
        level: DEBUG
        formatter: lineInfo
        stream: ext://sys.stdout
    debug_file_handler:
        class: logging.handlers.RotatingFileHandler
        level: DEBUG            
        formatter: lineInfo
        filename: logs/debug.log
        maxBytes: 10485760 # 10MB
        backupCount: 10
        encoding: utf8
    info_file_handler:
        class: logging.handlers.RotatingFileHandler
        level: INFO            
        formatter: simple
        filename: logs/info.log
        maxBytes: 10485760 # 10MB
        backupCount: 10
        encoding: utf8
    error_file_handler:
        class: logging.handlers.RotatingFileHandler
        level: ERROR            
        formatter: simple
        filename: logs/errors.log
        maxBytes: 10485760 # 10MB
        backupCount: 10
        encoding: utf8
root:
    level: DEBUG
    handlers: [console, info_file_handler, error_file_handler, debug_file_handler]

Vielen Dan

Antworten auf die Frage(6)

Ihre Antwort auf die Frage