Ketika saya menjalankan berikut ini di dalam Notebook IPython saya tidak melihat output apa pun:
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug("test")
Adakah yang tahu cara membuatnya sehingga saya bisa melihat pesan "test" di dalam notebook?
python
logging
jupyter-notebook
jupyter
Kyle Brandt
sumber
sumber
ipython3 notebook --version
kembali1.0.0
Jawaban:
Coba ikuti:
Menurut logging.basicConfig :
Sepertinya panggilan notebook ipython basicConfig (atau set handler) di suatu tempat.
sumber
logger
dibuat.ipykernel
4,5 (mungkin sedini 4.4) github.com/jupyter/notebook/issues/1397Jika Anda masih ingin menggunakan
basicConfig
, muat ulang modul logging seperti inisumber
reload
sekarangimp.reload
Pemahaman saya adalah bahwa sesi IPython memulai pencatatan sehingga basicConfig tidak berfungsi. Berikut ini adalah pengaturan yang berfungsi untuk saya (saya berharap ini tidak terlalu kotor karena saya ingin menggunakannya untuk hampir semua notebook saya):
Sekarang ketika saya menjalankan:
Saya mendapatkan file "mylog.log" di direktori yang sama dengan buku catatan saya yang berisi:
Perhatikan bahwa jika Anda menjalankan kembali ini tanpa memulai kembali sesi IPython itu akan menulis entri duplikat ke file karena sekarang akan ada dua penangan file yang ditentukan
sumber
Ingatlah bahwa stderr adalah aliran default untuk
logging
modul, jadi di notebook IPython dan Jupyter Anda mungkin tidak melihat apa-apa kecuali Anda mengkonfigurasi stream ke stdout:sumber
Apa yang bekerja untuk saya sekarang (Jupyter, server notebook adalah: 5.4.1, IPython 7.0.1)
Sekarang saya dapat menggunakan logger untuk mencetak info, jika tidak saya hanya akan melihat pesan dari level default (
logging.WARNING
) atau lebih tinggi.sumber
basicConfig()
membuatnya bekerja.Anda dapat mengonfigurasi pencatatan dengan menjalankan
%config Application.log_level="INFO"
Untuk informasi lebih lanjut, lihat opsi kernel IPython
sumber
%config
untuk melihat classed yang didukung,Application
bukan salah satunya. ipython 7.9.0 di sini.Saya menyiapkan logger untuk kedua file dan saya ingin itu muncul di notebook. Ternyata menambahkan pengolah file menghapus pengaliran aliran default.
sumber
Tampaknya solusi yang berfungsi untuk versi ipython / jupyter yang lebih lama tidak berfungsi lagi.
Berikut ini adalah solusi yang berfungsi untuk ipython 7.9.0 (juga diuji dengan server jupyter 6.0.2):
sumber