Python fichier de journalisation config KeyError: 'formateurs'
Je suis actuellement en train de travailler sur un projet de python et j'ai configurer la journalisation à l'aide d'un fichier de configuration. Il a déjà travaillé et a été la journalisation de mes messages que l'on veut.
Mais ensuite, après avoir réaménagé de certains des paquets et des modules, je seulement obtenir une clé d'erreur.
Plein De Sperme:
Traceback (most recent call last):
File "/Volumes/Daten/Eclipse/workspace/Carputer/src/pyboard/__init__.py", line 42, in <module>
logging.config.fileConfig('../logging.conf', disable_existing_loggers=False)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/logging/config.py", line 70, in fileConfig
formatters = _create_formatters(cp)
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/logging/config.py", line 103, in _create_formatters
flist = cp["formatters"]["keys"]
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/configparser.py", line 937, in __getitem__
raise KeyError(key)
KeyError: 'formatters'
Voici mon fichier de journalisation:
[loggers]
keys=root,pyBoard
[handlers]
keys=consoleHandler
[formatters]
keys=detailedFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler
[logger_pyBoard]
level=DEBUG
handlers=consoleHandler
qualname=pyBoard
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=detailedFormatter
args=(sys.stdout,)
[formatter_detailedFormatter]
format=%(asctime)s - %(name)s - %(levelname)s : Line %(lineno)s - %(message)s
datefmt=
Et le code correspondant:
if __name__ == '__main__':
logging.config.fileConfig('../logging.conf', disable_existing_loggers=False)
logger = logging.getLogger(__name__)
obc = Onboard_computer('/dev/ttys001')
obc.run()
C'est presque la même que pour le Python Journalisation Tutoriel.
Vraiment, je ne comprends pas pourquoi il ne fonctionne pas et il rend fou. Il a travaillé, j'ai rien changé sur le code, ni sur le programme d'installation, et il a cessé de travailler et Python lève cette KeyError.
Ma configuration: Mac OS X 10.9.2, Eclipse Kepler avec PyDev et Python 3.3. J'ai aussi testé sur un Raspberry Pi avec Raspbian Wheezy et Python 3.2 et dans Eclipse avec Python 2.7 (même erreur).
Quelqu'un de vous les gars, vous avez une idée?
- L'erreur indique, il est à la recherche d'un autre fichier
logging.config.fileConfig('../logging.ini', disable_existing_loggers=False)
Il est à la recherche d'un se terminant dans.ini
où en tant que votre code a un se terminant dans.conf
? - Faute de frappe, désolé... je viens d'installer PyCharm et testé il y a la même installation de Python 3.3.5. Et: il fonctionne! Des idées?
- Salut moritz, avez-vous réussi à résoudre ce problème? Je suis en train d'avoir le même problème lorsque vous essayez d'exécuter mon application avec l'exploitation forestière sur le RPi.
Vous devez vous connecter pour publier un commentaire.
J'ai eu ce problème parce que Python ne pouvais pas trouver mon fichier de config, si vous ne le savez par le message d'erreur. Apparemment, il n'a pas l'air pour le fichier de config par rapport au fichier dans lequel le code est en cours d'exécution, mais plutôt par rapport au répertoire de travail courant (que vous pouvez obtenir à partir de
os.getcwd()
). J'ai utilisé le code suivant pour initialiser l'enregistreur. Lelog.config
fichier est dans le même répertoire que le fichier de l'exécution de ce code:include path/to/logging.ini
dans mon fichier de manifeste, et donc le fichier n'est pas inclus dans ma roue paquet! Et cela a fonctionné sur ma machine locale, mais meurt dès qu'déployés pour AWS Lambda!Essayer de remplacer
avec cette
Pas sûr, mais probablement votre
logging.conf
est dans votre répertoire de travail courant, et avec le..
le fichier ne peut pas être trouvé.d512 était correcte.
Et lors de l'exécution du code et basé sur le PYTHONPATH, Python traite votre répertoire racine du projet comme de la 'chemin' n'importe où est votre exécutant le fichier situé. Donc, une autre façon est d'ajouter le chemin d'accès relatif, soit comme suit:
ou par rapport à l'actuel fichier:
Espère que cela aide