Logger penebangan getlogger nama python

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

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

  1. Masuk ke file
  2. Masuk ke syslog
  3. Masuk ke systemd-journald

Mengirim log Python ke file

Jika 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 syslog

Syslog 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-journald

Logging dengan systemd-journald memiliki beberapa manfaat, diantaranya

  • Pencarian lebih cepat berkat penyimpanan biner
  • Logging terstruktur yang dipaksakan
  • Rotasi log otomatis berdasarkan
    # 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!')
    
    5nilai

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 Python

Pada 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 Anda

Kapan 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 log

Jika 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 langsung

Alih-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 Anda

Beberapa 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.