Форум: "Основная";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
ВнизException Найти похожие ветки
← →
SteppesSon © (2005-05-20 09:17) [0]Возникла необходимость ведения лога ошибок в файл. В лог хотелось добавить хотя-бы ИмяКомпонентаВызвавшегоОшибку и МетодВызвавшийОшибку. Пробовал сам, но добился лишь имя формы, а не компонента, вызвавшего ошибку. заранее спасибо.
← →
Slym © (2005-05-20 11:01) [1]unit ErrorLogUn;
interface
uses sysutils,Forms,windows,Classes;
type
TErrorLogger=class
private
FFileName:string;
public
constructor Create;
procedure DoLogException(const Sender: string; E: Exception);
procedure OnException(Sender: TObject; E: Exception);
procedure Exception(Sender: TObject; E: Exception);
end;
var ErrorLogger:TErrorLogger;
implementation
{ TErrorLogger }
constructor TErrorLogger.Create;
begin
FFileName:=ExtractFilePath(ParamStr(0))+"Error.log";
end;
procedure TErrorLogger.DoLogException(const Sender: string; E: Exception);
var hFile:Text;
begin
AssignFile(hFile,FFileName);
{$i-}
if FileExists(FFileName) then
Append(hFile)
else
Rewrite(hFile);
{$i+}
if IOResult<>0 then Exit;
Writeln(hFile,DateTimeToStr(Now),"> Sender: "",Sender,"", exception: "",E.ClassName,"", message: "",E.Message,""");
CloseFile(hFile);
end;
procedure TErrorLogger.Exception(Sender: TObject; E: Exception);
begin
if Sender is TComponent then
DoLogException(TComponent(Sender).Name+"("+Sender.ClassName+")",E)
else
DoLogException(Sender.ClassName,E)
end;
procedure TErrorLogger.OnException(Sender: TObject; E: Exception);
begin
Exception(Sender, E);
if not Application.Terminated then
begin
if Application.MessageBox(PChar(E.Message+#13#10"Çàâåðøèòü ïðèëîæåíèå?"),PChar(Application.Title+": Ôàòàëüíàÿ îøèáêà!"),MB_YESNO or MB_ICONERROR)= ID_YES then
Application.Terminate;
end else Halt(1);
end;
initialization
if not assigned(ErrorLogger) then
ErrorLogger:=TErrorLogger.Create;
Application.OnException:=ErrorLogger.OnException;
finalization
if assigned(ErrorLogger) then
ErrorLogger.Free;
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c