Cuando dices "procedimiento" no lo asocio con un "procedure de delphi", me parecería una auténtica locura, si es así, de verdad te compadezco
.
Por cada mensaje a grabar en el log se debería:
- abrir el archivo
- escribir la línea de mensaje
- cerrar el archivo.
No uses el jvLog de la JVCL, es una patata.
Si el archivo log se mantiene abierto, al dar el error, se puede perder las últimas escrituras hechas (porque estén en cache).
Guardar la hora es lo de menos, es más.... ¿qué más te dá si el error fue a las 11:00 o a las 14:00? Lo que te interesa es saber qué desencadenó el error. Una de las formas es incluir excepciones dentro de esa rutina, haciéndolas saltar, así puedes identificarlo:
Reglas de oro:
- No dejes nunca un case sin else:
Código Delphi
[-]
case contador of
0: ....
1: ...
else
raise exception.CreateFmt('oops, "case del contador" no implementado para valor %d',[contador]);
Tampoco dejes un if sin else, si puede existir dicha opción:
Código Delphi
[-]
type MiPrograma = Class(Exception);
if a = 0 then
....
else if a> 0 then
....
else
raise Miprograma.CreateFmt('oops, " a < 0 " no implementado para valor %d',[a]);
Es obvio que ahora mismo, es un engorro hacer todo esto para tí, pero ¡¡deberías seguir buenas prácticas de programación desde un principio!!
Saludos