Wenn ich in IPython Notebook Folgendes ausführe, wird keine Ausgabe angezeigt:
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug("test")
Weiß jemand, wie man es macht, damit ich die "Test" -Nachricht im Notizbuch sehen kann?
python
logging
jupyter-notebook
jupyter
Kyle Brandt
quelle
quelle
ipython3 notebook --version
kehrt zurück1.0.0
Antworten:
Versuchen Sie Folgendes:
Laut logging.basicConfig :
Es scheint, als würde ein Ipython-Notebook irgendwo basicConfig (oder Set-Handler) aufrufen.
quelle
logger
wird erstellt.ipykernel
4.5 (möglicherweise bereits in 4.4) github.com/jupyter/notebook/issues/1397Wenn Sie es weiterhin verwenden möchten
basicConfig
, laden Sie das Protokollierungsmodul wie folgt neuquelle
reload
ist jetztimp.reload
Ich verstehe, dass die IPython-Sitzung mit der Protokollierung beginnt, sodass basicConfig nicht funktioniert. Hier ist das Setup, das für mich funktioniert (ich wünschte, dies würde nicht so grob aussehen, da ich es für fast alle meine Notebooks verwenden möchte):
Jetzt, wenn ich renne:
Ich erhalte eine "mylog.log" -Datei im selben Verzeichnis wie mein Notizbuch, die Folgendes enthält:
Beachten Sie, dass beim erneuten Ausführen ohne Neustart der IPython-Sitzung doppelte Einträge in die Datei geschrieben werden, da jetzt zwei Dateihandler definiert sind
quelle
Beachten Sie, dass stderr der Standard-Stream für das
logging
Modul ist. In IPython- und Jupyter-Notebooks wird möglicherweise nichts angezeigt , es sei denn, Sie konfigurieren den Stream für stdout:quelle
Was jetzt für mich funktioniert hat (Jupyter, Notebook-Server ist: 5.4.1, IPython 7.0.1)
Jetzt kann ich Logger zum Drucken von Informationen verwenden, andernfalls würde nur eine Nachricht von der Standardebene (
logging.WARNING
) oder höher angezeigt .quelle
basicConfig()
damit es funktioniert.Sie können die Protokollierung konfigurieren, indem Sie ausführen
%config Application.log_level="INFO"
Weitere Informationen finden Sie unter IPython-Kerneloptionen
quelle
%config
, um die unterstützte Klasse zu sehen,Application
ist keine davon. ipython 7.9.0 hier.Ich habe einen Logger für beide Dateien eingerichtet und wollte, dass er auf dem Notebook angezeigt wird. Es stellt sich heraus, dass durch Hinzufügen eines Dateihandlers der Standard-Stream-Handlder gelöscht wird.
quelle
Es scheint, dass Lösungen, die für ältere Versionen von ipython / jupyter funktionierten, nicht mehr funktionieren.
Hier ist eine funktionierende Lösung für ipython 7.9.0 (auch mit jupyter server 6.0.2 getestet):
quelle