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.
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:
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 conlast_date
. Si las fechas son diferentes, actualizamoslast_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.