Ver Mensaje Individual
  #8  
Antiguo 01-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
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); 
// así diferencias las excepciones de la VCL con las tuyas propias.

 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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita