Usando Log4j en Python con una biblioteca de registro


Este artículo explica qué es log4j, cómo funciona y por qué debemos usarlo. También veremos cómo usar log4j en el lenguaje de programación Python con la ayuda de la biblioteca de registro.


Una descripción general de Log4j y la importancia de su uso

log4j es una pieza de software utilizada por los programadores para ayudarlos a registrar datos en sus aplicaciones. Además, registrar datos significa registrar las actividades o acciones realizadas en la aplicación.

Podemos usar log4j por razones de seguridad, por ejemplo para ver varias autenticaciones. Sin embargo, también se puede usar para registrar lo que sucede en la aplicación con fines de depuración.

O obtenga una descripción general de lo que ha estado haciendo la aplicación. Por ejemplo, log4j es un marco en el lenguaje de programación Java que es una aplicación a medio construir.

Además, en Python, usamos el módulo de registro en lugar de log4j. El registro es el proceso de registrar las acciones y el estado de la aplicación en una interfaz secundaria. En otras palabras, las operaciones de su programa se escriben en un archivo, pero ¿cómo comienza a iniciar sesión?

Bueno, debe estar familiarizado con los niveles de registro. Cada biblioteca de registro le permite bloquear información en un nivel específico. Hay cinco niveles principales de registro que debe comprender.

nivel ilustrar
depurar El nivel de depuración se utiliza durante el desarrollo o para corregir errores y solucionar problemas. Toda la información específica del desarrollador se encuentra debajo de esta capa.
información El nivel de información se utiliza para registrar cualquier acción predeterminada importante del programa, como acciones predeterminadas de usuario o vista del sistema.
advertencia El nivel de advertencia se utiliza para registrar eventos que pueden convertirse en errores a largo plazo. Este nivel de registro debería ayudarlo a rastrear errores.
error Los niveles de error se utilizan para registrar errores, que son errores que afectan la ejecución del programa de alguna manera incorrecta.
crítico El nivel crítico es el fin del mundo, el programa está muerto o muy dañado.

Uso de Log4j con la ayuda de una biblioteca de registro en Python

En este momento solo estamos ejecutando un código básico simple, y no existe tal lógica, pero queremos mostrarle algo de comprensión, por ejemplo, cómo escribir todos los registros en un archivo.

Entremos en el código, primero configure el sistema de registro, llame basicConfig()al método y pase el nombre de archivo usando el parámetro de nombre de archivo. Python escribirá todos los mensajes de registro en este archivo; si no existe, Python lo creará.

El último parámetro es el modo de archivo, lo que significa que el modo de archivo significa el modo de agregar al modo de escritura o lo que sea que ingrese. De manera predeterminada, el archivo se creará en el modo de agregar. El siguiente es el formato que representa asctime, levelname, message y mucha otra información.

asctime básicamente muestra el tipo de tiempo que imprime en este archivo de texto en particular relacionado con el registro. El valor del segundo parámetro es algo llamado levelname; este parámetro nos dice qué tipo de error ocurrió durante la ejecución.

Ese mensaje son todos los mensajes que intentamos imprimir en ese mensaje de registro. Estamos usando datefmt; este parámetro imprimirá los tiempos en un orden específico.

basicConfig()Las funciones tienen una propiedad diferente de la que podemos leer todas las propiedades.

import logging

logging.basicConfig(filename='demo.txt',
                    filemode='a',
                    format='%(asctime)s %(levelname)s-%(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S')
Now we have written a simple logic where we compare the percentile with some numbers and append some logs inside the text file.

for i in range(0,15):
    if i%2==0:
        logging.error('Log error message')
    elif i%3==0:
        logging.warning('Log warning message')
    elif i%5==0:
        logging.debug('Log debug message') 
    elif i%7==0:
        logging.critical('Log critical message')
    else:
        logging.info('Log info message')

producción:

2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 WARNING-Log warning message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 CRITICAL-Log critical message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 WARNING-Log warning message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 ERROR-Log error message
2022-09-01 23:21:28 ERROR-Log error message

Después de ejecutar el programa, podemos notar que los registros de información y depuración no se agregan en el archivo de texto porque, de manera predeterminada, levelname llama a error y errorlevel no muestra información ni depuración.

Sin embargo, podemos usar otros niveles usando el parámetro de nivel al pasar logging.DEBUG.

level=logging.DEBUG

Ahora, si ejecutamos y abrimos el archivo demo.txt, veremos todos los mensajes de registro, pero si actualizamos el nivel de registro a logging.ERROR, veremos mensajes de error y críticos.

2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 INFO-Log info message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 WARNING-Log warning message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 DEBUG-Log debug message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 CRITICAL-Log critical message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 WARNING-Log warning message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 INFO-Log info message
2022-09-01 23:23:57 ERROR-Log error message
2022-09-01 23:23:57 INFO-Log info message
2022-09-01 23:23:57 ERROR-Log error message

Veamos un problema común donde queremos dividir cualquier número por cero. Para determinar esta acción, usaremos un bloque de prueba.

Si la operación falla, ingresamos al bloque excepto y registramos el error.

try:
    1/0
except:
    logging.error('Log zero division error occurs')

producción:

2022-09-02 00:29:48 ERROR-Log zero division error occurs

Es una parte importante de su proyecto porque probablemente tendrá que escribir este mecanismo de registro cada vez que trabaje en un proyecto.

Código Python completo:

import logging

logging.basicConfig(filename='demo.txt',
                    filemode='w',
                    format='%(asctime)s %(levelname)s-%(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S',
                    level=logging.DEBUG)

# for i in range(0,15):
#     if i%2==0:
#         logging.error('Log error message')
#     elif i%3==0:
#         logging.warning('Log warning message')
#     elif i%5==0:
#         logging.debug('Log debug message') 
#     elif i%7==0:
#         logging.critical('Log critical message')
#     else:
#         logging.info('Log info message')

try:
    1/0
except:
    logging.error('Log zero division error occurs')

Supongo que te gusta

Origin blog.csdn.net/fengqianlang/article/details/131584939
Recomendado
Clasificación