J'écris une application Web basée sur Django qui importe un framework Cocoa via PyObjC. Le cadre Cocoa a NSLog()
jeté tout au long et bien que je puisse les voir lors de l'exécution du serveur Django en mode non démon, dès que je vais au démon je perds simplement toute cette sortie utile NSLog()
.Comment faire fonctionner NSLog avec le module de journalisation de Python lors de l'utilisation de PyObjC?
Existe-t-il un moyen facile d'obtenir des informations de NSLog dans le monde du module Python logging
afin qu'il puisse être fusionné avec les messages de journal émis par le code Python réel?
fait un peu googler et il semble que vous pourriez avoir à rediriger stderr et en quelque sorte le sucer de nouveau dans Python afin d'y parvenir, ce qui serait une sorte de ... bummer
Toute aide très appréciée.
Merci pour l'info Vinay - Je m'en doutais. Je l'implémenterai et posterai ma solution actuelle pour la fusionner dans les logs de 'logging' de Python ici une fois que je l'ai fonctionné. – glenc
Pour ce que ça vaut, ma solution finale à ce problème était d'arrêter réellement d'utiliser NSLog() et d'écrire mes propres macros de journalisation basées sur http://borkware.com/rants/agentm/mlog/ qui utiliseraient les niveaux de journalisation pour correspondre à la journalisation .error, logging.debug etc de Python. Les messages sont mis en mémoire tampon, puis une temporisation répétée dans Python fusionne les messages mis en tampon à partir de objc et de Python natif par heure et les émet dans le fichier journal réel. – glenc