Merupakan ide bagus untuk menyimpan semua pesan kesalahan yang diangkat oleh suatu program ke dalam file. File yang menyimpan pesan, terutama kesalahan atau pengecualian disebut file 'log' dan teknik ini disebut 'logging'. Saat kami menyimpan pesan ke dalam file log, kami dapat membuka file dan membacanya atau mencetak file nanti. Ini membantu pemrogram untuk memahami berapa banyak kesalahan yang ada, nama kesalahan tersebut dan di mana kesalahan tersebut terjadi dalam program. Informasi ini akan memungkinkan mereka untuk menunjukkan kesalahan dan juga memperbaikinya dengan mudah. Jadi, logging membantu dalam men-debug program Show
Python menyediakan modul 'logging' yang berguna untuk membuat file log yang dapat menyimpan semua pesan kesalahan yang mungkin terjadi saat mengeksekusi suatu program Mungkin ada tingkat pesan kesalahan yang berbeda. Misalnya, kesalahan yang merusak sistem harus dianggap lebih penting daripada kesalahan yang hanya menampilkan pesan peringatan. Jadi, tergantung pada keseriusan kesalahan, mereka diklasifikasikan menjadi 6 level dalam modul 'logging', seperti yang ditunjukkan pada Tabel Tingkat Kesalahan Logging dan Nilai Numerik yang Ditentukan SebelumnyaLevelNumeric valueDescriptionCRITICAL50Mewakili kesalahan yang sangat serius yang membutuhkan perhatian tinggi. ERROR40Mewakili kesalahan seriusPERINGATAN30Mewakili pesan peringatan, diperlukan kehati-hatian. INFO20Mewakili pesan dengan beberapa informasi penting. DEBUG10Mewakili pesan dengan informasi debug. NOTSET0Mewakili bahwa level tidak diaturSeperti yang kita ketahui, secara default, pesan kesalahan yang terjadi pada saat mengeksekusi suatu program ditampilkan di monitor pengguna. Hanya pesan yang sama dengan atau di atas tingkat PERINGATAN yang ditampilkan. Itu berarti PERINGATAN, KESALAHAN dan KESALAHAN KRITIS ditampilkan. Mungkin saja kita dapat mengatur perilaku default ini sesuai kebutuhan Untuk memahami berbagai tingkat pesan logging, kita akan menulis program Python. Dalam program ini, pertama-tama kita harus membuat file untuk mencatat (menyimpan) pesan. Ini dilakukan dengan menggunakan metode basicConfig() dari modul logging as penebangan. basicConfig(namafile='mylog. txt', level=pencatatan. KESALAHAN) Di sini, nama file log diberikan sebagai mylog. txt'. Level disetel ke ERROR. Oleh karena itu, pesan yang levelnya ERROR atau lebih tinggi, (mis. e. ERROR atau CRITICAL) hanya akan disimpan ke dalam file log. Setelah selesai, kita dapat menambahkan pesan ke 'mylog. txt' sebagai penebangan. nama metode('pesan') Nama metode bisa critical(), error(), warning(), info() dan debug(). Misalnya, kita ingin menambahkan pesan kritis, kita harus menggunakan metode critical() sebagai Logging adalah alat yang sangat berguna dalam toolbox programmer. Ini dapat membantu Anda mengembangkan pemahaman yang lebih baik tentang alur program dan menemukan skenario yang mungkin tidak terpikirkan oleh Anda saat mengembangkan Log memberi pengembang satu set mata ekstra yang terus-menerus melihat aliran yang dilalui aplikasi. Mereka dapat menyimpan informasi, seperti pengguna atau IP mana yang mengakses aplikasi. Jika terjadi kesalahan, maka mereka dapat memberikan lebih banyak wawasan daripada pelacakan tumpukan dengan memberi tahu Anda keadaan program sebelum tiba di baris kode tempat kesalahan terjadi Dengan mencatat data yang berguna dari tempat yang tepat, Anda tidak hanya dapat men-debug kesalahan dengan mudah tetapi juga menggunakan data tersebut untuk menganalisis kinerja aplikasi untuk merencanakan penskalaan atau melihat pola penggunaan untuk merencanakan pemasaran Python menyediakan sistem logging sebagai bagian dari pustaka standarnya, sehingga Anda dapat dengan cepat menambahkan logging ke aplikasi Anda. Dalam artikel ini, Anda akan mempelajari mengapa menggunakan modul ini adalah cara terbaik untuk menambahkan logging ke aplikasi Anda serta cara memulai dengan cepat, dan Anda akan mendapatkan pengantar untuk beberapa fitur lanjutan yang tersedia Bonus Gratis. 5 Pemikiran Tentang Python Mastery, kursus gratis untuk pengembang Python yang menunjukkan kepada Anda peta jalan dan pola pikir yang Anda perlukan untuk meningkatkan keterampilan Python Anda ke tingkat berikutnya Modul PencatatanModul logging di Python adalah modul siap pakai dan kuat yang dirancang untuk memenuhi kebutuhan pemula serta tim perusahaan. Ini digunakan oleh sebagian besar pustaka Python pihak ketiga, sehingga Anda dapat mengintegrasikan pesan log Anda dengan pesan dari pustaka tersebut untuk menghasilkan log homogen untuk aplikasi Anda Menambahkan logging ke program Python Anda semudah ini
Dengan modul logging yang diimpor, Anda dapat menggunakan sesuatu yang disebut “logger” untuk mencatat pesan yang ingin Anda lihat. Secara default, ada 5 level standar yang menunjukkan tingkat keparahan peristiwa. Masing-masing memiliki metode terkait yang dapat digunakan untuk mencatat peristiwa pada tingkat keparahan tersebut. Level yang ditentukan, dalam urutan peningkatan keparahan, adalah sebagai berikut
Modul logging memberi Anda logger default yang memungkinkan Anda untuk memulai tanpa perlu melakukan banyak konfigurasi. Metode yang sesuai untuk setiap level dapat dipanggil seperti yang ditunjukkan pada contoh berikut _Output dari program di atas akan terlihat seperti ini
Output menunjukkan tingkat keparahan sebelum setiap pesan bersama dengan 7, yang merupakan nama yang diberikan modul logging ke logger defaultnya. (Logger dibahas secara rinci di bagian selanjutnya. ) Format ini, yang menunjukkan level, nama, dan pesan yang dipisahkan oleh titik dua ( 8), adalah format keluaran default yang dapat dikonfigurasi untuk memasukkan hal-hal seperti stempel waktu, nomor baris, dan detail lainnyaPerhatikan bahwa pesan _9 dan 0 tidak dicatat. Ini karena, secara default, modul logging mencatat pesan dengan tingkat keparahan 1 atau lebih tinggi. Anda dapat mengubahnya dengan mengonfigurasi modul logging untuk mencatat peristiwa di semua level jika Anda mau. Anda juga dapat menentukan tingkat keparahan Anda sendiri dengan mengubah konfigurasi, tetapi umumnya tidak disarankan karena dapat menyebabkan kebingungan dengan log beberapa pustaka pihak ketiga yang mungkin Anda gunakanHilangkan iklanKonfigurasi DasarAnda dapat menggunakan metode 2 3 4 untuk mengonfigurasi logging
Beberapa parameter yang umum digunakan untuk _6 adalah sebagai berikut
Dengan menggunakan parameter _7, Anda dapat mengatur tingkat pesan log yang ingin Anda rekam. Ini dapat dilakukan dengan meneruskan salah satu konstanta yang tersedia di kelas, dan ini akan memungkinkan semua panggilan logging pada atau di atas level tersebut untuk dicatat. Ini sebuah contoh
_Semua peristiwa pada atau di atas level _4 sekarang akan dicatatDemikian pula, untuk masuk ke file daripada konsol, 8 dan 9 dapat digunakan, dan Anda dapat menentukan format pesan menggunakan 2. Contoh berikut menunjukkan penggunaan ketiganya
Pesan akan terlihat seperti ini tetapi akan ditulis ke file bernama 8 bukan konsol. Filemode diatur ke _9, yang berarti file log dibuka dalam "mode tulis" setiap kali 6 dipanggil, dan setiap menjalankan program akan menulis ulang file. Konfigurasi default untuk mode file adalah 1, yang ditambahkanAnda dapat menyesuaikan root logger lebih jauh lagi dengan menggunakan lebih banyak parameter untuk 6, yang dapat ditemukanPerlu dicatat bahwa memanggil _6 untuk mengkonfigurasi root logger hanya berfungsi jika root logger belum dikonfigurasi sebelumnya. Pada dasarnya, fungsi ini hanya bisa dipanggil satu kali 9, 0, 6, 7, dan 8 juga memanggil 6 tanpa argumen secara otomatis jika belum pernah dipanggil sebelumnya. Ini berarti bahwa setelah pertama kali salah satu fungsi di atas dipanggil, Anda tidak dapat lagi mengkonfigurasi root logger karena mereka akan memanggil fungsi 6 secara internalPengaturan default di _6 adalah mengatur logger untuk menulis ke konsol dalam format berikut
Memformat KeluaranMeskipun Anda dapat meneruskan variabel apa pun yang dapat direpresentasikan sebagai string dari program Anda sebagai pesan ke log Anda, ada beberapa elemen dasar yang sudah menjadi bagian dari 2 dan dapat dengan mudah ditambahkan ke format keluaran. Jika Anda ingin mencatat ID proses bersama dengan level dan pesan, Anda dapat melakukan hal seperti ini
2 dapat mengambil string dengan 2 atribut dalam pengaturan apa pun yang Anda suka. Seluruh daftar atribut yang tersedia dapat ditemukanBerikut contoh lain di mana Anda dapat menambahkan info tanggal dan waktu _0 _1 5 menambahkan waktu pembuatan 2. Format dapat diubah menggunakan atribut _7, yang menggunakan bahasa pemformatan yang sama dengan fungsi pemformatan dalam modul datetime, seperti 8 _2 _3Anda dapat menemukan panduannya Hilangkan iklanMencatat Data VariabelDalam kebanyakan kasus, Anda ingin memasukkan informasi dinamis dari aplikasi Anda ke dalam log. Anda telah melihat bahwa metode logging menggunakan string sebagai argumen, dan tampaknya wajar untuk memformat string dengan data variabel dalam baris terpisah dan meneruskannya ke metode log. Tapi ini sebenarnya bisa dilakukan secara langsung dengan menggunakan format string untuk pesan dan menambahkan data variabel sebagai argumen. Ini sebuah contoh _4 _5Argumen yang diteruskan ke metode akan dimasukkan sebagai data variabel dalam pesan Meskipun Anda dapat menggunakan gaya pemformatan apa pun, f-string diperkenalkan di Python 3. 6 adalah cara yang luar biasa untuk memformat string karena dapat membantu membuat format tetap pendek dan mudah dibaca _6 _5Menangkap Jejak TumpukanModul logging juga memungkinkan Anda menangkap pelacakan tumpukan penuh dalam aplikasi. Informasi pengecualian dapat ditangkap jika parameter 9 diteruskan sebagai 0, dan fungsi logging disebut seperti ini _8 _9Jika _9 tidak disetel ke 0, output dari program di atas tidak akan memberi tahu kita apa pun tentang pengecualian, yang, dalam skenario dunia nyata, mungkin tidak sesederhana 3. Bayangkan mencoba men-debug kesalahan dalam basis kode yang rumit dengan log yang hanya menampilkan ini 0Ini tip singkatnya. jika Anda masuk dari penangan pengecualian, gunakan metode 4, yang mencatat pesan dengan level 5 dan menambahkan informasi pengecualian ke pesan. Sederhananya, menelepon 4 seperti menelepon 7. Tetapi karena metode ini selalu membuang informasi pengecualian, metode ini hanya boleh dipanggil dari penangan pengecualian. Lihatlah contoh ini 1 _9Menggunakan _4 akan menampilkan log pada level 5. Jika Anda tidak menginginkannya, Anda dapat memanggil salah satu metode logging lainnya dari 9 ke 8 dan meneruskan parameter 9 sebagai 0Kelas dan FungsiSejauh ini, kita telah melihat logger default bernama 7, yang digunakan oleh modul logging setiap kali fungsinya dipanggil secara langsung seperti ini. 5. Anda dapat (dan harus) mendefinisikan logger Anda sendiri dengan membuat objek dari kelas 6, terutama jika aplikasi Anda memiliki banyak modul. Mari kita lihat beberapa kelas dan fungsi dalam modulKelas yang paling umum digunakan yang didefinisikan dalam modul logging adalah sebagai berikut
Dari jumlah tersebut, kami sebagian besar berurusan dengan objek dari kelas 6, yang dibuat menggunakan fungsi tingkat modul 10. Beberapa panggilan ke _11 dengan 12 yang sama akan mengembalikan referensi ke objek 6 yang sama, yang menyelamatkan kita dari meneruskan objek logger ke setiap bagian yang membutuhkannya. Ini sebuah contoh _3 _4Ini membuat logger kustom bernama _14, tetapi tidak seperti root logger, nama logger kustom bukan bagian dari format output default dan harus ditambahkan ke konfigurasi. Mengkonfigurasinya ke format untuk menampilkan nama logger akan memberikan hasil seperti ini 5Sekali lagi, tidak seperti root logger, custom logger tidak dapat dikonfigurasi menggunakan 6. Anda harus mengonfigurasinya menggunakan Handler dan FormatterHilangkan iklan Menggunakan HandlerPenangan masuk ke dalam gambar saat Anda ingin mengonfigurasi logger Anda sendiri dan mengirim log ke beberapa tempat saat dibuat. Penangan mengirim pesan log ke tujuan yang dikonfigurasi seperti aliran keluaran standar atau file atau melalui HTTP atau ke email Anda melalui SMTP Logger yang Anda buat dapat memiliki lebih dari satu penangan, yang berarti Anda dapat mengaturnya untuk disimpan ke file log dan juga mengirimkannya melalui email Seperti penebang, Anda juga dapat mengatur tingkat keparahan dalam penangan. Ini berguna jika Anda ingin menetapkan beberapa penangan untuk logger yang sama tetapi menginginkan tingkat keparahan yang berbeda untuk masing-masingnya. Misalnya, Anda mungkin ingin log dengan level 1 dan lebih tinggi untuk dicatat ke konsol, tetapi semuanya dengan level 5 dan lebih tinggi juga harus disimpan ke file. Inilah program yang melakukan itu 6 7Di sini, _21 membuat 2 yang menyimpan semua informasi acara dan meneruskannya ke semua Penangan yang dimilikinya. _23 dan 24 _23 adalah 03 dengan level 1 dan mengambil info dari 2 untuk menghasilkan output dalam format yang ditentukan dan mencetaknya ke konsol. _24 adalah 04 dengan level 5, dan mengabaikan 2 ini karena levelnya adalah 1Ketika _34 dipanggil, 23 berperilaku persis seperti sebelumnya, dan 24 mendapatkan 2 pada level 5, sehingga menghasilkan output seperti 23, tetapi alih-alih mencetaknya ke konsol, ia menulisnya ke file yang ditentukan dalam hal ini _8Nama logger yang sesuai dengan variabel 16 dicatat sebagai 41, yang merupakan nama yang diberikan Python ke modul tempat eksekusi dimulai. Jika file ini diimpor oleh beberapa modul lain, maka variabel 16 akan sesuai dengan namanya logging_example. Begini tampilannya _9 0Metode Konfigurasi LainnyaAnda dapat mengonfigurasi logging seperti yang ditunjukkan di atas menggunakan modul dan fungsi kelas atau dengan membuat file konfigurasi atau kamus dan memuatnya masing-masing menggunakan 43 atau 44. Ini berguna jika Anda ingin mengubah konfigurasi logging Anda di aplikasi yang sedang berjalanBerikut adalah contoh konfigurasi file 1Pada file di atas, terdapat dua logger, satu handler, dan satu formatter. Setelah namanya ditentukan, mereka dikonfigurasikan dengan menambahkan kata logger, handler, dan formatter sebelum namanya dipisahkan dengan garis bawah Untuk memuat file konfigurasi ini, Anda harus menggunakan 43 2 _3Jalur file konfigurasi diteruskan sebagai parameter ke metode 43, dan parameter 47 digunakan untuk menyimpan atau menonaktifkan penebang yang ada saat fungsi dipanggil. Standarnya adalah _0 jika tidak disebutkanBerikut konfigurasi yang sama dalam format YAML untuk pendekatan kamus _4Berikut adalah contoh yang menunjukkan cara memuat konfigurasi dari file 49 5 6Hilangkan iklanTetap Tenang dan Baca LogModul logging dianggap sangat fleksibel. Desainnya sangat praktis dan harus sesuai dengan kasus penggunaan Anda di luar kotak. Anda dapat menambahkan logging dasar ke proyek kecil, atau Anda dapat membuat level log kustom Anda sendiri, kelas penangan, dan lainnya jika Anda sedang mengerjakan proyek besar Jika Anda belum pernah menggunakan masuk ke aplikasi Anda, sekarang adalah saat yang tepat untuk memulai. Jika dilakukan dengan benar, logging pasti akan menghilangkan banyak gesekan dari proses pengembangan Anda dan membantu Anda menemukan peluang untuk membawa aplikasi Anda ke level selanjutnya Tandai sebagai Selesai Tonton Sekarang Tutorial ini memiliki kursus video terkait yang dibuat oleh tim Real Python. Tonton bersama dengan tutorial tertulis untuk memperdalam pemahaman Anda. Masuk dengan Python 🐍 Trik Python 💌 Dapatkan Trik Python singkat & manis yang dikirim ke kotak masuk Anda setiap beberapa hari. Tidak pernah ada spam. Berhenti berlangganan kapan saja. Dikuratori oleh tim Real Python Kirimi Saya Trik Python » Tentang Abhinav Ajitsaria Abhinav adalah Insinyur Perangkat Lunak dari India. Dia suka berbicara tentang desain sistem, pembelajaran mesin, AWS, dan tentu saja, Python » Lebih lanjut tentang AbhinavSetiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah Aldren Daud Dan Joanna Master Keterampilan Python Dunia Nyata Dengan Akses Tanpa Batas ke Python Nyata Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas pakar Pythonista Tingkatkan Keterampilan Python Anda » Guru Keterampilan Python Dunia Nyata Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas ahli Pythonista Tingkatkan Keterampilan Python Anda » Bagaimana menurut anda? Nilai artikel ini Tweet Bagikan Bagikan EmailApa takeaway # 1 Anda atau hal favorit yang Anda pelajari? Kiat Berkomentar. Komentar yang paling berguna adalah yang ditulis dengan tujuan belajar dari atau membantu siswa lain. dan dapatkan jawaban atas pertanyaan umum di portal dukungan kami Bagaimana Anda mencatat semua kesalahan dengan Python?Untuk mencatat pengecualian di Python, kita dapat menggunakan modul pencatatan dan melalui itu kita dapat mencatat kesalahan . Mencatat pengecualian dalam python dengan kesalahan dapat dilakukan di logging. pengecualian() metode. Fungsi ini mencatat pesan dengan level ERROR pada logger ini.
Bagaimana Anda menulis log ke file dengan Python?Cara Memulai Mencatat Pesan dengan Python . Impor modul logging Konfigurasikan logger menggunakan metode basicConfig(). . Tentukan file tujuan pengiriman pesan log Tentukan tingkat "keseriusan" dari pesan log Format pesan log Tambahkan atau timpa pesan log sebelumnya dalam file Bagaimana cara menggunakan getLogger dengan Python?getLogger(name) biasanya dijalankan. Fungsi getLogger() menerima satu argumen - nama logger . Ini mengembalikan referensi ke instance logger dengan nama yang ditentukan jika disediakan, atau root jika tidak. Beberapa panggilan ke getLogger() dengan nama yang sama akan mengembalikan referensi ke objek logger yang sama.
Bagaimana cara membuat banyak file log dengan Python?Python. mencatat status program ke dalam beberapa file untuk dianalisis . penebangan. basicConfig(level=mencatat. INFO, filename='success_logs. txt', format='[%(asctime)s] %(levelname)s. %(pesan)s') formatter = logging. Formatter('[%(asctime)s] %(levelname)s %(message)s') penangan = logging. FileHandler(nama_file) |