Pengaturcaraan

Melog masuk Python - Panduan Sehenti Anda

Melog masuk Python - Panduan Sehenti Anda

Pembalakan adalah langkah penting yang harus dilakukan oleh pengaturcara semasa pembangunan perisian. Ini membantu pembangun untuk mengesan peristiwa yang berlaku semasa pelaksanaan program, yang dapat membantu proses debug di masa depan. Sekiranya anda pelajar baru atau mengerjakan projek baru, adalah amalan yang baik untuk menggunakan pembalakan untuk mengesan aliran kod dan untuk menyelesaikan kesilapan.

Semasa menulis program pendek, kebanyakan kita biasanya mengabaikan pembalakan, tetapi apabila program menjadi rumit, maka merupakan langkah penting dan berguna untuk menggunakan log untuk memperbaiki kesilapan yang menghalang perisian berjalan lancar. Pembalakan tidak lebih daripada menulis peristiwa dalam perisian ke dalam fail log atau mengeluarkan di terminal.

Pembalakan tidak hanya digunakan untuk penyahpepijatan. Ini juga merupakan proses yang berguna untuk mengumpulkan maklumat, mengumpulkan data penggunaan, dan banyak tugas berguna lainnya. Ini juga merupakan salah satu fungsi yang paling biasa bagi pembangun web bukan hanya untuk mengesan kesalahan tetapi juga mengumpulkan data pengguna seperti alamat IP, yang dapat digunakan untuk analisis bisnis lebih lanjut.

Di Python, sebahagian besar kemudahan pembalakan disediakan oleh pembalakan modul yang dibentangkan di pustaka python standard, jadi kami tidak perlu melakukan konfigurasi tambahan. Mari lihat bagaimana menggunakannya untuk log masuk python. Sebelum mengikuti tutorial ini, python versi terbaru perlu dipasang di sistem anda. Sekiranya anda tidak memasang python terbaru dalam sistem anda, anda boleh mengikuti panduan langkah demi langkah kami untuk memasang dan mengemas kini python di Linux.

Modul Pembalakan Python

Modul pembalakan python adalah salah satu perpustakaan pembalakan yang paling banyak digunakan di python. Bahagian yang paling baik ialah ia dilengkapi dengan pustaka standard python, jadi kami tidak perlu melakukan konfigurasi atau pemasangan. Modul pembalakan kuat dan mudah, yang bermaksud ia berguna untuk pemula dan perusahaan. Untuk menggunakan modul pembalakan di python, kita perlu mengimportnya ke dalam program kita seperti yang saya lakukan pada baris kod berikut.

pembalakan import

Sekarang mari kita lihat demo bagaimana kita boleh memasukkan beberapa mesej ke terminal. Cukup salin kod berikut ke python IDE kegemaran anda dan jalankan.

pengimportan pembalakan import.amaran ("Ini Amaran")

Semasa menjalankan kod di atas, kita akan mendapat output seperti yang ditunjukkan pada gambar di bawah.

Seperti yang terlihat dalam output, program mencetak pesan peringatan. Modul pembalakan juga mempunyai beberapa tahap pembalakan seperti maklumat, kesilapan, dll., yang memudahkan tugas kita. Marilah kita membincangkannya secara ringkas dengan contoh.

Tahap pembalakan Python

Banyak tahap pembalakan boleh digunakan untuk log mesej yang berbeza pada tahap keparahan. Tahap yang disediakan oleh ular sawa pembalakan modul adalah

Tahap ini ditunjukkan dalam urutan penurunan tahap keparahannya. Mari kita lihat bagaimana menggunakan tahap ini dalam program kita. Cukup salin kod berikut dan jalankan di Python IDE.

pengimportan pembalakan import.pembalakan kritikal ("Ini adalah mesej kritikal").ralat ("Ini adalah mesej ralat") pembalakan.peringatan ("Ini adalah mesej Amaran").maklumat ("Ini adalah mesej maklumat") pembalakan.debug ("Ini adalah mesej Debug")

Semasa menjalankan kod di atas di IDE, output yang ditunjukkan oleh terminal ditunjukkan pada gambar di bawah.

Seperti yang anda lihat dalam output, mesej DEBUG dan INFO tidak dicetak di terminal kerana modul log, secara lalai, hanya mencatat mesej tahap keselamatan yang lebih tinggi daripada atau sama dengan amaran. Untuk memaparkan INFO dan DEBUG di terminal, kita perlu mengubah konfigurasi Asas logger secara manual. Untuk melakukannya, kita boleh menggunakan basicConfig (**kwarg) kaedah yang disediakan oleh modul pembalakan. Untuk melihat demo konfigurasi yang mudah, jalankan kod berikut ke Python IDE anda.

pengimportan pembalakan import.basicConfig (level = pembalakan.DEBUG) pembalakan.pembalakan kritikal ("Ini adalah mesej kritikal").ralat ("Ini adalah mesej ralat") pembalakan.peringatan ("Ini adalah mesej Amaran").info ("Ini adalah mesej maklumat") pembalakan.debug ("Ini adalah mesej Debug")

Dalam kod di atas, kami telah menetapkan tahap pembalakan.HUTANG, yang bermaksud bahawa semua tahap yang berada di atas tahap debug akan dicatat. Oleh itu, dalam kod di atas, semua mesej akan dicatatkan seperti yang ditunjukkan pada gambar di bawah.

Marilah kita membincangkan lebih lanjut kaedah basicConfig () modul pembalakan.

Konfigurasi Asas

Modul pembalakan menyediakan kaedah yang sangat berguna basicConfig (** Kwargs), yang digunakan untuk menetapkan konfigurasi untuk log data. Beberapa parameter fungsi basicConfig () yang biasa digunakan adalah:

Mari kita lihat bagaimana kita dapat menggunakan konfigurasi ini dalam modul pembalakan python dengan meneroka contoh satu demi satu.

Parameter level digunakan untuk menetapkan tahap keparahan, untuk melihat demo praktikal bagaimana menggunakannya, salin kod di bawah di python IDE dan jalankan.

pengimportan pembalakan import.basicConfig (level = pembalakan.INFO) pembalakan.pembalakan kritikal ("Ini adalah mesej kritikal").ralat ("Ini adalah mesej ralat") pembalakan.peringatan ("Ini adalah mesej Amaran").maklumat ("Ini adalah mesej maklumat") pembalakan.debug ("Ini adalah mesej Debug")

Semasa menjalankan kod, anda mungkin melihat output, seperti yang ditunjukkan pada gambar di bawah. Seperti yang anda lihat bahawa mesej yang berada di atas tahap maklumat dicetak, tetapi mesej di peringkat debug tidak dicetak.

Parameter level adalah konfigurasi berguna yang harus dilakukan agar fail log tidak terlalu besar dengan mengandungi data yang tidak perlu dan hanya mempunyai maklumat yang diperlukan.

Log masuk ke fail

Kami hanya melihat cara log masuk ke terminal, tetapi log masuk ke terminal tidak selalu berguna kerana kami tidak dapat menyimpannya untuk digunakan kemudian. Untuk penyelesaian yang lebih baik, kita dapat mencetak log dalam fail teks yang kita simpan dan analisis kemudian. Log adalah teks dan dapat disimpan dalam file teks dalam format apa pun, tetapi secara universal diadopsi untuk menyimpan log dalam file dengan .peluasan log. Fail-fail ini dikenal sebagai fail log dan digunakan secara universal untuk menyimpan log program, aplikasi web, dan perisian lain.

Kita boleh menyimpan log ke fail dengan mengatur konfigurasi modul pembalakan dengan bantuan fungsi basicConfig (). Kita perlu memberikan nama fail di mana kita ingin menyimpan log dalam parameter nama fail fungsi basicConfig (), setelah itu catatan akan dicetak secara automatik dalam fail log yang kita tentukan. Mari kita lihat contoh praktikal untuk mengetahui bagaimana ia berfungsi.

pengimportan pembalakan import.basicConfig (level = pembalakan.INFO, nama fail = "mylog.log ") pembalakan.pembalakan kritikal ("Ini adalah mesej kritikal").ralat ("Ini adalah mesej ralat") pembalakan.peringatan ("Ini adalah mesej Amaran").info ("Ini adalah mesej maklumat") pembalakan.debug ("Ini adalah mesej Debug")

Semasa menjalankan kod, anda dapat melihat bahawa fail baru telah dibuat dalam nama direktori yang berfungsi sekarang mylog.balak. Semasa membuka fail dengan editor teks, Anda mungkin melihat bahawa log disimpan ke dalam fail.

Sekiranya kita menjalankan semula kod, kita akan melihat log akan ditambahkan dalam fail. Kita dapat mengubahnya dengan menentukan parameter filemode dalam fungsi basiconfig (). Secara lalai, parameter filemode mempunyai nilai "a", yang berarti append. Tetapi kadang-kadang kita juga mahu memadamkan data yang telah dilog sebelumnya dan menulis log baru hanya dalam fail. Untuk melakukan ini, kita dapat memberikan parameter fileode nilai "w," yang berarti untuk menulis, dan ini akan menghapus data sebelumnya dalam file dan menulis yang baru. Untuk demo, lihat contoh berikut.

pengimportan pembalakan import.basicConfig (level = pembalakan.INFO, nama fail = "mylog.log ", filemode =" w ") pembalakan.pembalakan kritikal ("Ini adalah mesej kritikal").ralat ("Ini adalah mesej ralat") pembalakan.peringatan ("Ini adalah mesej Amaran").maklumat ("Ini adalah mesej maklumat") pembalakan.debug ("Ini adalah mesej Debug")

Semasa menjalankan kod di atas, anda mungkin melihat bahawa log sebelumnya yang ada di dalam fail telah dikeluarkan dari fail, dan log baru telah ditambahkan. Setiap kali kita menjalankan kod, log baru akan ditambahkan, dan yang sebelumnya akan dihapus, yang berguna ketika kita tidak memerlukan catatan untuk penggunaan lebih lanjut.

Memformat Log

Kami telah melihat log output mempunyai susun atur lalai, tetapi kami dapat mengubah format dengan menetapkan parameter format fungsi basicConfig (). Mari kita lihat demo praktikal untuk mengetahui bagaimana kita dapat menggunakan parameter format dalam fungsi basicConfig () untuk mengubah format log.

pengimportan pembalakan import.basicConfig (level = pembalakan.INFO, format = "% (nama fail) s:% (levelname) s:% (message) s") pembalakan.pembalakan kritikal ("Ini adalah mesej kritikal").ralat ("Ini adalah mesej ralat") pembalakan.peringatan ("Ini adalah mesej Amaran").maklumat ("Ini adalah mesej maklumat") pembalakan.debug ("Ini adalah mesej Debug")

Output kod di atas adalah seperti yang ditunjukkan pada gambar di bawah.

Seperti yang anda lihat dalam output, nama fail juga telah ditampilkan. Kita boleh menggunakan parameter format untuk menunjukkan banyak format lain yang membolehkan kita membincangkannya.

% (waktu waktu) s: Ini digunakan untuk memaparkan masa yang dapat dibaca manusia dalam log. Untuk melihat bagaimana ia menunjukkan masa, jalankan kod berikut di Python IDE.

pengimportan pembalakan import.basicConfig (level = pembalakan.INFO, log = "% (asctime) s:% (message) s").amaran ("Ini adalah mesej Amaran")

Semasa menjalankan kod, anda mungkin melihat output, seperti yang ditunjukkan pada gambar di bawah.

% (dibuat) f: Ini akan memaparkan masa di mana log dibuat.

% (nama fail) s: Ini digunakan untuk memaparkan nama fail dalam mesej log. Untuk melihat bagaimana ia berfungsi, jalankan kod contoh berikut di Python IDE anda.

pengimportan pembalakan import.basicConfig (level = pembalakan.INFO, format = "% (asctime) s:% (nama fail) s:% (message) s") pembalakan.amaran ("Ini adalah mesej Amaran")

Output yang diberikan oleh kod ditunjukkan dalam gambar berikut. Dalam output, nama fail telah dipaparkan. Ini berguna semasa mengerjakan projek yang melibatkan banyak fail sehingga kita dapat mendapatkan fail yang mempunyai kesalahan dengan cepat.

% (levelname) s: Ini digunakan untuk memaparkan nama tahap yang digunakan seperti PERINGATAN, DEBUG, dll.

% (levelno) s: Ini digunakan untuk mencetak nilai numerik dari tahap yang menjadi sebahagian daripada mesej.

% (lineno) d: Ini digunakan untuk mencetak nombor baris dari baris semasa, yang memaparkan pesan. Ini sangat berguna kerana memberi kita nombor baris di mana kita mesti melihat ralat, jadi ini membantu proses penyahpepijatan. Mari kita lihat contoh kod untuk melihat bagaimana menggunakannya untuk membentuk output log.

import logging Format = '% (asctime) s:% (nama fail) s:% (lineno) d:% (message) s' logging.basicConfig (level = pembalakan.INFO, format = Format) pembalakan.amaran ("Ini adalah mesej Amaran")

Kod ini juga akan mencetak baris tidak, seperti yang ditunjukkan pada gambar di bawah.

% (mesej) s: Ini digunakan untuk menampilkan mesej yang telah kami log.

% (nama jalan) s: Ini digunakan untuk memaparkan nama penuh fail kod sumber.

% (proses) d: Ini akan memaparkan id proses jika ada.

% (nama proses) s: Ini akan memaparkan Nama proses jika ada.

% (utas) d: Ini akan memaparkan id Thread jika ada.

% (threadName) s: Ini akan memaparkan Nama Benang jika ada.

Pemboleh ubah Data Pembalakan

Kami telah memberikan mesej dalam log oleh kami sendiri, yang merupakan data statik. Namun, dalam aplikasi dunia nyata, data yang kami log masuk adalah kebanyakan maklumat dinamik dari aplikasi kami. Untuk melakukan ini, kita perlu mengeluarkan pemboleh ubah dengan log mesej. Kita boleh melakukan ini dengan pelbagai cara. Sebagai contoh, kita boleh memasukkan pemboleh ubah dan memformat rentetan dengan penahan tempat dan kemudian menyebarkannya ke log mesej sehingga nilai pemboleh ubah akan dikeluarkan dalam rekod.

Contohnya, lihat kod di bawah; anda boleh menyalin kod yang dijalankan di python IDE anda.

import pembalakan var_message = "Ralat dalaman" pembalakan.amaran ("Pelayan telah dihentikan kerana% s", var_message)

Semasa menjalankan kod, anda akan melihat output, seperti yang ditunjukkan pada gambar di bawah. Seperti yang anda lihat dalam gambar bahawa nilai yang tersimpan dalam pemboleh ubah juga dicetak di skrin.

Kita juga dapat memaparkan pemboleh ubah dalam log menggunakan string-f, yang diperkenalkan dalam ular sawa 3.6. Tetapi untuk menggunakan tali f, anda memerlukan python 3.6 atau lebih besar dipasang di sistem anda. Anda boleh memeriksa versi python mana yang dipasang di sistem anda dengan menjalankan perintah berikut di terminal.

python --versi # untuk python 2 di Linux python3 - versi # untuk python 3 di Linux

Ini akan mencetak versi python yang anda gunakan dalam sistem anda. Merupakan amalan yang baik untuk menggunakan python versi terbaru untuk mendapatkan prestasi yang lebih baik; anda boleh melihat panduan kami untuk mengemas kini versi python anda di Linux.

Untuk memformat rentetan menggunakan f-string di python, kita perlu menggunakan sintaks kod berikut. Anda boleh menyalin dan menjalankan kod di python IDE kegemaran anda.

import pembalakan var_message = "Ralat dalaman" pembalakan.amaran (f "Pelayan telah dihentikan kerana var_message")

Semasa menjalankan kod, anda akan mendapat output yang serupa dengan yang kita jalankan dengan menjalankan kod di atas. Tetapi ketika kita melihat kodnya, kita dapat melihat f di awal rentetan, yang menunjukkan bahawa itu adalah f-string, dan kita secara langsung dapat menggunakan pemboleh ubah dalam f-string dengan memasukkannya ke dalam kurung keriting.

Jejak Stack Pembalakan

Modul pembalakan juga dapat digunakan untuk menangkap jejak timbunan. Stack traces adalah pengecualian mesej yang dilemparkan semasa ralat berlaku dalam program. Kita dapat menangkap pengecualian dengan menetapkan parameter exc_info ke True sambil memanggil fungsi log. Parameter ini berguna kerana kita dapat mencatat mesej pengecualian lengkap dengan mesej ralat kita di layar fail atau terminal.

Untuk mendapatkan demo praktikal untuk mengetahui bagaimana kita dapat mencari jejak timbunan, salin kod berikut ke python IDE anda dan jalankan.

import logging try: a = 1/0 kecuali Pengecualian sebagai e: pembalakan.ralat ("Terdapat Ralat", exc_info = True)

Semasa menjalankan kod, pengecualian akan masuk ke terminal. Anda akan melihat output kod, seperti yang ditunjukkan dalam gambar di bawah. Anda juga dapat memasukkan pengecualian ke dalam file menggunakan parameter nama file dalam kaedah basicConfig (), seperti yang telah kita bincangkan di atas.

Kaedah ini juga penting dalam membangun aplikasi yang luas kerana kita boleh mempunyai pengendalian pengecualian dengan pembalakan, yang sangat baik untuk proses debugging.

Objek Pembalak

Modul pembalakan juga menyediakan beberapa kelas berguna yang dapat digunakan untuk pembalakan yang lebih baik, terutamanya untuk aplikasi yang lebih luas. Mari kita lihat beberapa kelas modul pembalakan yang paling banyak digunakan dan apa dan bagaimana ia berfungsi.

Sekiranya anda mahukan perincian lengkap mengenai cara menggunakan kelas ini, anda boleh merujuk kepada dokumentasi rasmi modul pembalakan python.

Kesimpulannya

Dalam artikel ini, kami telah mempelajari asas-asas melakukan log masuk di python. Modul pembalakan adalah kaedah mudah dan berkesan untuk melakukan log masuk di python. Katakan anda tidak melakukan pembalakan sehingga sekarang, hari ini adalah hari untuk memulakan pembalakan kerana anda membaca artikel dan mengetahui betapa mudahnya menggunakan log masuk di python. Anda kini boleh menggunakan log masuk dalam aplikasi kecil dan penting.

Sekiranya anda melakukan pembalakan dengan betul, ia pasti akan membantu dalam satu atau lain cara. Saya menasihati anda untuk mula menggunakannya dari program kecil kerana ia akan membantu anda mendapatkan pengetahuan yang baik mengenai satu atau dua perkara dan akan berharga untuk projek besar. Anda mungkin juga ingin melihat cara bekerja dengan pangkalan data SQLite di python. 

Tutorial OpenTTD
OpenTTD adalah salah satu permainan simulasi perniagaan yang paling popular di luar sana. Dalam permainan ini, anda perlu membuat perniagaan pengangku...
SuperTuxKart untuk Linux
SuperTuxKart adalah tajuk hebat yang direka untuk membawa anda pengalaman Mario Kart secara percuma pada sistem Linux anda. Ia cukup mencabar dan meny...
Tutorial Battle for Wesnoth
The Battle for Wesnoth adalah salah satu permainan strategi sumber terbuka paling popular yang boleh anda mainkan pada masa ini. Bukan hanya permainan...