Rumah > Artikel > pembangunan bahagian belakang > Contoh penggunaan pembalakan dalam perpustakaan standard Python
[Cadangan berkaitan: Tutorial video Python3]
2. Contoh penggunaan mudah
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 INFOSecara lalai, tahap log pengelogan ialah AMARAN dan log dicetak ke konsol.3 >
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)%(levelname)s
: Tahap log bagi log yang dicetak%(message)s
: Menunjukkan kandungan log5 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: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)
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!