Dos usos del módulo de registro de Python

import logging 
from logging.handlers import TimedRotatingFileHandler, RotatingFileHandler 

'' ' 
级别 有 如下 :
level = logging.NOTSET 0 
level = logging.DEBUG 10 
level = logging.INFO 20 
level = logging.WARNING 30 
level = logging.ERROR 40 
level = logging .CRITICAL 50 


logging.debug ('Este es un mensaje de depuración') 
logging.info ('Este es un mensaje de información') 
logging.warning ('Este es un mensaje de advertencia') 
logging.error ('Este es un mensaje de error' ) 
logging.critical ('Este es un mensaje crítico') 
logging.exception ('') 捕获 异常


# 写法 一 
logging.basicConfig (filename = "test.log", filemode = "w",
                    format = "% (asctime) s:% (pathname) s: 第% (lineno) d 行:% ( nombre) s:% (nombre de nivel) s:% (mensaje) s ",
                    datefmt = "% Y-% m-% d% H:% M:% S", nivel = logging.NOTSET) 

a = 5 
b = 0 
try: 
    c = a / b 
    logging.info ('Este es un mensaje de información ') 
excepto Excepción como e: 
    # 下面 三种 方式 三 选 一 , 推荐 使用 第 一种
    # logging.exception ("Excepción ocurrida") 
    # logging.error ("Excepción ocurrida", exc_info = True) 
    # logging.log ( level = logging.DEBUG, msg = "Se produjo una excepción", exc_info = True) 
    logging.error ('Esto es un mensaje de error') 
'' ' 
 
# 写法 二

logger = logging.getLogger ("logger") 
logger.setLevel (logging.DEBUG)
logger.propagate = False 

handler1 = logging.StreamHandler () 
# handler2 = logging.FileHandler (filename = "test.log") 
'' '
TimedRotatingFileHandler (nombre de archivo [, cuando [, intervalo [, backupCount]]])
nombre de archivo es el prefijo del nombre del archivo de registro de salida y 

cuando una cadena se define de la siguiente manera: 

    “S”: segundos 
    “M”: minutos 
    “H”: horas 
    “D”: días 
    “W”: día de la semana (0 = lunes) 
    “medianoche ": Desplazarse en el 

intervalo de medianoche se refiere a cuántas unidades de tiempo de espera, Logger reconstruirá automáticamente el archivo, por supuesto, la creación de este archivo depende del nombre de archivo + sufijo, 
si este archivo tiene el mismo nombre que el archivo anterior, automáticamente Sobrescriba el archivo anterior, por lo que en algunos casos la definición de sufijo no puede repetirse debido a cuándo. 

backupCount es el número de registros retenidos. El valor predeterminado 0 no es eliminar automáticamente el registro. Si se establece en 10, la biblioteca determinará si hay más de 10 en el proceso de creación del archivo. 
Si excede, se eliminará del primero creado. 
'' '
# handler2 = TimedRotatingFileHandler (filename = "test.log", when = 'S', encoding = 'utf8', intervalo = 3, backupCount = 3) 
handler2 = RotatingFileHandler (filename = "test.log", mode = 'a' , maxBytes = 1, encoding = 'utf8', backupCount = 3) 

'' ' 
handler1.setLevel (logging.WARNING) 
handler2.setLevel (logging.WARNING) 
' '' 
format_str = "% (asctime) s:% (pathname) s: 第% (lineno) d 行:% (nombre) s:% (nombre de nivel) s:% (mensaje) s " 
datefmt = '% Y-% m-% d% H:% M:% S' 

formatter = logging.Formatter (format_str, datefmt) 
handler1.setFormatter (formatter) 
handler2.setFormatter (formatter) 

logger.addHandler (handler1) 
logger.addHandler (handler2) 

a = 5 
b = 0 
try: 
    c = a / b 
    logger. info ('Este es un mensaje de información') 
excepto Excepción como e: 
    # 下面 三种 方式 三 选 一 , 推荐 使用 第 一种
    # logging.exception ("Se produjo una excepción") 
    # logging.error ("Se produjo una excepción", exc_info = True) 
    # logging.log (level = logging.DEBUG, msg = "Se produjo una excepción", exc_info = True) 
    logger.error ('Este es un mensaje de error')

Fuente: https://blog.csdn.net/tangwendi/article/details/94843555

Publicado 44 artículos originales · 130 alabanzas · 1,37 millones de visitas

Supongo que te gusta

Origin blog.csdn.net/gb4215287/article/details/105159626
Recomendado
Clasificación