Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Contoh penggunaan pembalakan dalam perpustakaan standard Python

Contoh penggunaan pembalakan dalam perpustakaan standard Python

WBOY
WBOYke hadapan
2022-09-05 17:42:311763semak imbas

[Cadangan berkaitan: Tutorial video Python3]

1 🎜>Pengelogan ialah perpustakaan pengelogan yang biasa digunakan dalam perpustakaan standard Python Ia menyimpan log dalam pelbagai format melalui modul pengelogan Ia digunakan terutamanya untuk mengeluarkan log berjalan Anda boleh menetapkan tahap log keluaran, laluan penjimatan log , dsb.

2. Contoh penggunaan mudah

Mula-mula buat fail logger.py, kod di dalamnya adalah seperti berikut:

Dalam Buat fail demo.py dalam direktori yang sama dengan fail logger.py, dan rujuk

import logging
 
# 1.创建一个logger实例,并且logger实例的名称命名为“single info”,设定的严重级别为DEBUG
LOGGER = logging.getLogger('single info')
LOGGER.setLevel(logging.DEBUG)
 
# 2.创建一个handler,这个主要用于控制台输出日志,并且设定严重级别
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
 
# 3.创建handler的输出格式(formatter)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
 
# 4.将formatter添加到handler中
ch.setFormatter(formatter)
 
# 5.将handler添加到logger中
LOGGER.addHandler(ch)
contoh logger

yang dibuat sebelum ini dalam fail demo.py. Kodnya adalah seperti berikut: Laksanakan fail demo.py, kandungan input dalam konsol adalah seperti berikut:

from logger import LOGGER
 
LOGGER.debug("打印DEBUG级别的日志")
LOGGER.info("打印INFO级别的日志")

2022-09-03 17:38:16,554 - maklumat tunggal - DEBUG - cetakan Log peringkat DEBUG

2022-09-03 17:38:16,555 - maklumat tunggal - INFO - Cetak log peringkat INFO


3 >
Secara lalai, tahap log pengelogan ialah AMARAN dan log dicetak ke konsol.

Hubungan peringkat log ialah: KRITIKAL > AMARAN > Cetak log peringkat RALATCetak log peringkat AMARAN

Anda boleh melihat bahawa memandangkan tahap log INFO kurang daripada AMARAN, log yang sepadan tidak akan dikeluarkan

import logging
 
LOGGER = logging.getLogger('single info')
 
LOGGER.error("打印ERROR级别日志")
LOGGER.warning("打印WARNING级别日志")
LOGGER.info("打印INFO级别日志")

4 Pelbagai parameter format cetakan


%(asctime)s

: Cipta manusia apabila mengelog masa Boleh dibaca, secara lalai adalah dalam bentuk '2022-09-03 17:28:38,073' (nombor selepas koma ialah bahagian milisaat masa itu)

%(name )s

: Menunjukkan nama contoh logger

%(levelname)s

: Tahap log bagi log yang dicetak

%(message)s

: Menunjukkan kandungan log

5 fail

Letakkan logger di atas Fail .py diubah suai seperti berikut:

Kod dalam fail demo.py ialah:

Laksanakan fail demo.py, kami akan melihat bahawa pada akar projek Fail bernama test.log akan dihasilkan di bawah direktori, dan kandungan dalam fail ialah:

Ralat Cetakan log peringkat

Cetak log peringkat AMARAN

import logging
 
# 1、创建一个logger实例,并且logger实例的名称命名为“single info”,设定的严重级别为DEBUG
LOGGER = logging.getLogger('single info')
LOGGER.setLevel(logging.DEBUG)
 
# 2、创建一个handler,用于写入日志文件
fh = logging.FileHandler('test.log',encoding="utf-8", mode="a")
fh.setLevel(logging.WARNING)
 
#3、定义handler的输出格式(formatter)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(filename)s - %(lineno)d : %(message)s')
 
# 4、给handler添加formatter
fh.setFormatter(formatter)
 
# 5、给logger添加handler
LOGGER.addHandler(fh)

Petua istimewa: Memandangkan bahasa Cina akan dikeluarkan dalam fail log, pengekodan perlu ditetapkan apabila menentukan fail log

Selepas menjalankan demo.py beberapa kali, anda boleh melihat Empat fail baharu akan ditambah di bawah direktori akar projek:


log.txt mewakili fail tempat log semasa disimpan, log.txt.1, log.txt.2 dan log.txt.3 mewakili fail sandaran log.

7. Kembalikan log (berguling mengikut masa)

Hanya ubah suai fail logger.py: tentukan TimedRotatingFileHandler, sandarkan sehingga 3 fail log, setiap 5 saat Sebagai titik selang fail log

Selepas menjalankan demo.py beberapa kali, anda boleh melihat bahawa empat fail baharu akan ditambah di bawah direktori akar projek:

import logging
from logging.handlers import RotatingFileHandler
 
# 1、创建一个logger实例,并且logger实例的名称命名为“single info”,设定的严重级别为DEBUG
LOGGER = logging.getLogger('single info')
LOGGER.setLevel(logging.DEBUG)
 
# 2、定义一个RotatingFileHandler,最多备份3个日志文件,每个日志文件最大1K
rHandler = RotatingFileHandler("log.txt",maxBytes = 1,backupCount = 3,encoding="utf-8", mode="a")
rHandler.setLevel(logging.WARNING)
 
#3、定义handler的输出格式(formatter)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(filename)s - %(lineno)d : %(message)s')
 
# 4、给handler添加formatter
rHandler.setFormatter(formatter)
 
# 5、给logger添加handler
LOGGER.addHandler(rHandler)

ds_update mewakili fail yang disimpan dalam log semasa, diwakili oleh ds_update.2022-09-03_19-24-50, ds_update.2022-09-03_19-24-45 dan ds_update.2022-09 -03_19-24-36 ialah fail sandaran log, dan fail sandaran log digulung dari terkini ke jauh dalam susunan kronologi.

[Cadangan berkaitan:

Tutorial video Python3

]

Atas ialah kandungan terperinci Contoh penggunaan pembalakan dalam perpustakaan standard Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam