Cara menggunakan modul pengelogan untuk log masuk Python 3.x

WBOY
Lepaskan: 2023-07-30 13:51:49
asal
1238 orang telah melayarinya

Cara menggunakan modul pengelogan untuk log masuk Python 3.x

Pengenalan:
Dalam proses pembangunan perisian, pengelogan merupakan komponen penting. Dengan merekodkan status berjalan program dan pelbagai acara, penyelesaian masalah, analisis prestasi dan pemantauan sistem boleh dilakukan dengan mudah. Modul pengelogan dalam Python menyediakan fungsi pengelogan yang berkuasa dan fleksibel, yang boleh menjana dan mengurus log dengan mudah.

1. Gambaran keseluruhan modul pengelogan
Pengelogan ialah modul terbina dalam Python yang menyediakan fungsi pengelogan lengkap. Dengan menggunakan modul pengelogan, anda boleh mentakrifkan pelbagai format output dan sasaran output, dan anda juga boleh mengawal tahap log dengan mudah dan merekod dan memaparkan maklumat log secara fleksibel mengikut keperluan.

2. Pengelogan asas
Contoh berikut menunjukkan cara menggunakan modul pengelogan untuk pengelogan asas dalam Python:

import logging

# 配置日志记录器
logging.basicConfig(level=logging.DEBUG, 
                    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 创建日志记录器
logger = logging.getLogger('my_logger')

# 记录不同级别的日志
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
Salin selepas log masuk

Dalam kod di atas, log global mula-mula dikonfigurasikan melalui fungsi basicConfig The logger menentukan tahap pengelogan sebagai DEBUG dan menentukan format log. Kemudian buat logger khusus bernama 'my_logger' melalui fungsi getLogger. Selepas itu, melalui peringkat kaedah yang berbeza, seperti debug, info, amaran, error dan kritikal< /code>, masing-masing merekodkan tahap maklumat log yang berbeza. <code>basicConfig函数配置了全局的日志记录器,指定了日志记录的级别为DEBUG,并且指定了日志的格式。然后通过getLogger函数创建一个名为 'my_logger' 的具体的日志记录器。之后,通过不同级别的方法,如debuginfowarningerrorcritical,分别记录了不同级别的日志信息。

三、日志级别和输出格式控制
logging模块提供了多个级别的日志记录,包括DEBUGINFOWARNINGERRORCRITICAL五个级别,从低到高依次递增。可以通过设置日志记录器和不同的处理器的级别,来控制日志记录的详细程度。

import logging

# 配置日志记录器
logging.basicConfig(level=logging.WARNING, 
                    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 创建日志记录器
logger = logging.getLogger('my_logger')

# 创建文件处理器
file_handler = logging.FileHandler('log.txt')
file_handler.setLevel(logging.DEBUG)

# 创建控制台处理器
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.ERROR)

# 设置处理器的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)

# 添加处理器到记录器
logger.addHandler(file_handler)
logger.addHandler(console_handler)

# 记录不同级别的日志
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
Salin selepas log masuk

在上述代码中,首先通过basicConfig函数将全局的日志记录级别设置为WARNING。然后使用getLogger函数创建名为 'my_logger' 的日志记录器。接着创建了两个处理器,一个是写入文件的文件处理器,一个是输出到控制台的控制台处理器。通过设置处理器的级别,可以分别控制文件和控制台的日志输出级别。最后,通过addHandler方法将处理器添加到日志记录器中。

四、更多高级配置
logging模块还提供了更多的高级配置选项,比如日志的输出位置、文件分割、日志轮转和日志审计等。下面是一个使用RotatingFileHandler进行日志文件轮转的示例:

import logging
from logging.handlers import RotatingFileHandler

# 创建日志记录器
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)

# 创建轮转文件处理器
file_handler = RotatingFileHandler('log.txt', maxBytes=1024, backupCount=5)

# 设置处理器的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)

# 添加处理器到记录器
logger.addHandler(file_handler)

# 记录不同级别的日志
for i in range(10):
    logger.debug('This is debug message %d' % i)
Salin selepas log masuk

在上面的代码中,通过RotatingFileHandler

3 Tahap log dan kawalan format output

Modul pengelogan menyediakan berbilang peringkat pengelogan, termasuk DEBUG, INFO, WARNING, Terdapat lima tahap ERROR dan KRITIKAL, meningkat daripada rendah kepada tinggi. Anda boleh mengawal verbositi pengelogan dengan menetapkan tahap pembalak dan pemproses yang berbeza.
rrreee

Dalam kod di atas, mula-mula tetapkan tahap pengelogan global kepada AMARAN melalui fungsi basicConfig. Kemudian gunakan fungsi getLogger untuk mencipta logger bernama 'my_logger'. Kemudian dua pemproses dicipta, satu ialah pemproses fail yang menulis ke fail, dan satu lagi ialah pemproses konsol yang mengeluarkan ke konsol. Dengan menetapkan tahap pemproses, anda boleh mengawal tahap output log fail dan konsol masing-masing. Akhir sekali, tambah pengendali pada pembalak melalui kaedah addHandler. 🎜🎜4 Konfigurasi yang lebih maju🎜Modul pengelogan juga menyediakan pilihan konfigurasi yang lebih maju, seperti lokasi keluaran log, pemisahan fail, penggiliran log dan pengauditan log, dsb. Berikut ialah contoh penggunaan RotatingFileHandler untuk penggiliran fail log: 🎜rrreee🎜Dalam kod di atas, pengendali fail dicipta melalui kelas RotatingFileHandler dan saiz maksimum fail ditentukan sebagai 1024 bait , terpelihara Bilangan fail sandaran ialah 5. Dengan cara ini, apabila fail log mencapai saiz maksimum, ia akan dibahagikan secara automatik kepada berbilang fail sambil mengekalkan bilangan fail sandaran yang ditentukan. 🎜🎜Ringkasan: 🎜Artikel ini memperkenalkan kaedah asas menggunakan modul pengelogan untuk log masuk dalam Python 3.x. Dengan menggunakan tahap kaedah yang berbeza, tahap maklumat log yang berbeza boleh direkodkan dengan mudah. Dengan mengkonfigurasi pemproses dan format yang berbeza, anda boleh mengawal lokasi output dan format log secara fleksibel. Pada masa yang sama, modul pengelogan juga menyediakan pilihan konfigurasi yang lebih maju, seperti pemisahan fail, putaran log, dsb., untuk memenuhi keperluan pembalakan yang lebih kompleks. Bagi pemula pengelogan, bermula dengan kaedah asas dan secara beransur-ansur menguasai pilihan konfigurasi yang lebih maju akan membantu meningkatkan kebolehselenggaraan dan kecekapan penyahpepijatan kod. 🎜

Atas ialah kandungan terperinci Cara menggunakan modul pengelogan untuk log masuk Python 3.x. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan