es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Registro no creando archivo para el siguiente día en su lugar, agregando información en el archivo de registro de la fecha anterior.

Estoy tratando de mantener un registro utilizando el módulo de registro, pero una vez que inicio el script, sigue agregando al archivo de registro de la fecha actual en lugar de crear un nuevo archivo para el día siguiente. El script se está ejecutando las 24 horas. No estoy seguro de cómo manejar eso.

Mi código:

from datetime import date, datetime
import time
import logging

LogDirectory="D:\\Python_Collateral_Validation_Service\\Logs"

while True:
    logfile=LogDirectory+"\\"+str(date.today().strftime("%d/%m/%Y")).replace("/", "")+".log"
    print("nombre de archivo de registro := ",logfile)
    logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s %(message)s')
    logging.info("CollateralValidation-> CSV File Not Present")
    time.sleep(90)

Sentencia de impresión:

nombre de archivo de registro :=  D:\Python_Collateral_Validation_Service\Logs\06012022.log
nombre de archivo de registro :=  D:\Python_Collateral_Validation_Service\Logs\07012022.log
PS D:\Alok\CR06645_PythonCode_phase2>

Se generó el archivo de registro solo para 06012022, pero también se estaba escribiendo en 07012022, en lugar de generar el archivo esperado 07012022.log.

Salida del archivo 06012022.log:

2022-01-06 16:11:53,480 CollateralValidation-> CSV File Not Present
2022-01-06 16:12:26,580 CollateralValidation-> CSV File Not Present
2022-01-06 16:15:00,987 CollateralValidation-> CSV File Not Present
2022-01-07 16:16:29,998 CollateralValidation-> CSV File Not Present

07012022 no se generó con respecto a la última línea anterior.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema es que el archivo de registro solo se está generando una vez, basado en la fecha actual, y luego el programa continúa escribiendo en ese mismo archivo incluso después de que la fecha haya cambiado. Una forma de manejar esto sería modificar el código para verificar la fecha actual cada vez que se realice el registro y crear un nuevo archivo de registro si la fecha ha cambiado desde la última vez que se registró. Aquí hay un ejemplo de cómo se podría hacer eso:

    from datetime import date, datetime
    import time
    import logging
    
    LogDirectory="D:\\Python_Collateral_Validation_Service\\Logs"
    
    # inicializar una variable para hacer un seguimiento de la última fecha registrada
    last_date = date.today()
    
    while True:
        # verificar la fecha actual
        current_date = date.today()
    
        # si la fecha ha cambiado desde el último registro realizado, crear un nuevo archivo de registro
        if current_date != last_date:
            last_date = current_date
            logfile = LogDirectory + "\\" + str(current_date.strftime("%d%m%Y")) + ".log"
            logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s %(message)s')
    
        # registrar el mensaje como de costumbre
        logging.info("CollateralValidation-> CSV File Not Present")
        time.sleep(90)
    

    En este código modificado, inicializamos una variable last_date con la fecha actual antes de entrar en el bucle infinito. Luego, en cada iteración del bucle, verificamos la fecha actual y la comparamos con last_date. Si las fechas son diferentes, actualizamos last_date y creamos un nuevo archivo de registro basado en la fecha actual. De lo contrario, simplemente registramos en el archivo de registro existente como antes.

Comments are closed.