Sejauh ini, kami telah mengirimkan pesan log kami ke konsol. Itu bagus untuk proses debug lokal, tetapi dalam praktiknya Anda sering perlu mengirim log ke tujuan lain Show
Nanti di Panduan Python Logging kami, kami akan membahas lebih banyak topik lanjutan seperti logging terpusat dan # Import the default logging module import logging # Format the log message logging.basicConfig(level=logging.INFO) # Emit a warning message logging.info('Keep going, you are doing great!')2 untuk Django. Untuk saat ini, kami akan fokus pada tiga kasus penggunaan umum
Mengirim log Python ke fileJika Anda ingin aplikasi Python Anda membuat file log, Anda dapat menggunakan modul logging default dan menentukan nama file dalam kode Anda. Misalnya, untuk membuat skrip tingkat PERINGATAN asli kita menulis ke file bernama HumioDemo. log, kami menambahkan baris berikut logging.basicConfig(filename='HumioDemo.log')_ Skrip baru akan terlihat seperti ini # Import the default logging module import logging # Set basicConfig() to create a log file logging.basicConfig(filename='HumioDemo.log') # Emit a warning message logging.warning('You are learning Python logging!') Tidak ada yang akan dicetak ke konsol saat Anda menjalankan skrip itu. Sebaliknya, itu akan membuat HumioDemo. file log di direktori kerja saat ini, dan file ini akan menyertakan pesan log Mengirim log Python ke syslogSyslog adalah mekanisme populer untuk memusatkan log lokal dan jarak jauh dari aplikasi di seluruh sistem. Modul logging default Python menyertakan untuk mengirim log ke server syslog lokal atau jarak jauh. Ada juga modul syslog standar yang memudahkan penulisan ke syslog untuk kasus penggunaan dasar Python Berikut skrip yang menggunakan modul syslog standar # Import the standard syslog module import syslog # Emit an INFO-level message syslog.syslog(syslog.LOG_INFO,'Logging an INFO message with the syslog module!') # Emit a WARNING-level message syslog.syslog(syslog.LOG_WARNING,'Logging a WARNING message with the syslog module!') Setelah menjalankan skrip itu, Anda akan melihat pesan di file syslog lokal sistem. Bergantung pada sistem Anda, file itu mungkin # Import the default logging module import logging # Format the log message logging.basicConfig(level=logging.INFO) # Emit a warning message logging.info('Keep going, you are doing great!')3 atau # Import the default logging module import logging # Format the log message logging.basicConfig(level=logging.INFO) # Emit a warning message logging.info('Keep going, you are doing great!')4. Pesan log akan terlihat seperti berikut ini Nov 11 11:11:16 localhost syslog.py: Logging an INFO message with the syslog module! Nov 11 11:11:16 localhost syslog.py: Logging a WARNING message with the syslog module!_ Mengirim log Python ke systemd-journaldLogging dengan systemd-journald memiliki beberapa manfaat, diantaranya
Pada sebagian besar sistem Linux modern yang menggunakan systemd, jika aplikasi Python Anda berjalan sebagai unit systemd, apa pun yang dicetaknya ke stdout atau stderr akan ditulis ke systemd-journald. Itu berarti yang perlu Anda lakukan hanyalah mengirim keluaran log Anda ke stdout atau stderr Selain modul yang disertakan dengan pustaka Python standar, pustaka dan pembungkus python-systemd seperti pembungkus Python systemd membantu merampingkan proses pengiriman log Python ke systemd-journald Misalnya, untuk menggunakan python-systemd, instal terlebih dahulu menggunakan manajer paket sistem Anda. Kemudian tambahkan baris berikut ke kode Anda from systemd import journal_ Ini adalah skrip Python sederhana yang menulis pesan tingkat PERINGATAN ke journald import logging from systemd import journal logger = logging.getLogger('humioDemoLogger') logger.addHandler(journal.JournalHandler()) logger.warning("logging is easy!")_ Setelah menjalankan skrip di atas, kami menjalankan # Import the default logging module import logging # Format the log message logging.basicConfig(level=logging.INFO) # Emit a warning message logging.info('Keep going, you are doing great!')6 dan melihat hasilnya mirip dengan Nov 11 11:11:57 localhost pylog.py[2111]: logging is easy! Praktik terbaik untuk memancarkan log PythonPada titik ini, Anda harus dapat mengimplementasikan pencatatan dasar untuk aplikasi Python Anda. Namun, masih banyak lagi yang bisa dipelajari tentang modul logging standar. Membaca PEP 282, resmi , dan merupakan cara yang bagus untuk menyelam lebih dalam Seiring kemajuan Anda, ingatlah praktik terbaik berikut Sertakan stempel waktu dengan pesan AndaKapan merupakan bagian penting dari suatu peristiwa. Oleh karena itu, Anda harus menyertakan stempel waktu pada setiap pesan yang Anda keluarkan. Dengan modul logging default, Anda dapat menambahkan stempel waktu ke pemformat, seperti yang kami lakukan dengan %(asctime)s di contoh sebelumnya. Anda dapat menyesuaikannya lebih lanjut menggunakan Memiliki mekanisme untuk memutar logJika Anda menyimpan log pada disk, maka miliki strategi rotasi log untuk menghindari masalah ruang disk. Dengan modul logging Python default, pertimbangkan untuk menggunakan Jangan membuat instance modul logging secara langsungAlih-alih membuat contoh modul logging secara langsung, gunakan logging. getLogger(nama). Hierarki penamaan modul default mirip dengan hierarki paket Python, dan persis sama jika Anda memberi nama logger setelah modul yang sesuai, Pusatkan log AndaBeberapa file log yang tersebar di beberapa sistem dapat menjadi hampir sama beratnya dengan pernyataan print() yang awalnya ingin kita singkirkan. Memusatkan log Anda untuk penguraian dan analisis memberi Anda kemampuan observasi dalam skala besar Bagaimana cara memeriksa informasi logger dengan Python?Ini contohnya. . impor penebangan penebangan. basicConfig(level=mencatat. . DEBUG. akar. Ini akan dicatat impor penebangan penebangan. basicConfig(namafile='aplikasi. log', filemode='w', format='%(name)s - %(levelname)s - pencatatan %(message)s'). . root - ERROR - Ini akan masuk ke file KESALAHAN. akar. Ini adalah pesan kesalahan Bagaimana Anda mencatat nama kelas dengan Python?Di bawah ini adalah 3 metode yang dengannya Anda bisa mendapatkan nama kelas dengan python. . 1) Menggunakan __class__. __name__ Metode pertama dan termudah untuk mendapatkan nama kelas di python adalah dengan menggunakan properti __class__ yang pada dasarnya mengacu pada kelas objek yang ingin kita ambil. . 2) Menggunakan type() dan __name__attribute. . 3) Menggunakan kelas bersarang Apa itu pencatat nama?Logger adalah entitas bernama . Nama logger peka terhadap huruf besar-kecil dan mengikuti aturan penamaan hierarkis. seorang logger dikatakan nenek moyang dari logger lain jika namanya diikuti dengan titik merupakan awalan dari nama keturunan logger.
Apa itu Python penangan logger?Python Logging Handler
. Menampilkannya di konsol (melalui StreamHandler), dalam file (melalui FileHandler), atau bahkan dengan mengirimi Anda email melalui SMTPHandler, dll. Setiap penangan log memiliki 2 bidang penting. Pemformat yang menambahkan informasi konteks ke log. the component that effectively writes/displays a log: Display it in the console (via StreamHandler), in a file (via FileHandler), or even by sending you an email via SMTPHandler, etc. Each log handler has 2 important fields: A formatter which adds context information to a log. |