Bagaimana Anda mengirim output skrip pemula ke terminal sehingga menemukan traceback dalam kode python? Butuh waktu lama bagiku untuk melakukan hal-hal tanpa jejak yang dulu hanya butuh satu detik. Saya harus melakukan beberapa panggilan tulis file untuk melacak kesalahan. Apa yang dibutuhkan kedua untuk ditemukan sebelumnya dengan traceback berubah menjadi beberapa menit menit. Ini menyedihkan. Ini telah berlangsung selama beberapa minggu sekarang dan saya muak. tolong ada yang angkat bicara tentang ini. Saya merasa seperti menggunakan perakitan tanpa debugger lagi.
16
/var/log/upstart
. Sangat berguna, terima kasih.Ada seluruh bagian tentang teknik debugging di Cookbook Upstart . Hal termudah yang dapat Anda lakukan adalah menambahkan
--debug
argumen kernel Anda, yang akan meningkatkan verbositas pemula dan membuang semuanya ke syslog. Ya, debugging itu kompleks, ini merupakan cerminan dari kompleksitas bersih yang diperlukan untuk membuat sistem init yang diparalelkan. Saya yakin ada ruang untuk perbaikan.sumber
Ketika saya menulis daemon python saya menangkap semua pengecualian dan kemudian melemparkan ke file log. Saya tidak hanya menggunakan untuk debug, tetapi juga dalam produksi. Saya memiliki skrip kecil yang saya jalankan setiap pagi yang mencari sesuatu yang mengganggu dalam log.
Ini juga membantu menjaga daemon tetap berjalan, tentu saja.
Beberapa kode contoh (saya menghapus bagian yang tidak menarik):
Di mana actua () adalah daemon yang sebenarnya (ia juga menulis untuk mencatat). Perhatikan bahwa saya juga memiliki variabel DEBUG dalam file pengaturan, ketika itu Benar, saya tidak garpu daemon sehingga dijalankan pada konsol.
Daemon
Daemon adalah unix yang setara dengan layanan windows. Mereka adalah proses yang berjalan di latar belakang independen dari proses lain. Itu berarti bahwa ayah mereka biasanya init, dan bahwa mereka terlepas dari segala tty. Karena mereka independen, tidak ada tempat yang telah ditentukan untuk memberikan hasil mereka.
Ada banyak pustaka python dan cuplikan untuk membuat daemon, dalam contoh di atas saya menggunakan fungsi saya sendiri, yang menggabungkan beberapa ide dari versi Steinar Knutsens dan Jeff Kunces. Sesederhana mungkin, perhatikan bahwa saya bercabang dua kali .
sumber