📄 syslogserverenterprise.pas
字号:
unit SysLogServerEnterprise;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer,
IdSysLogServer, ComCtrls,IdSocketHandle,IdSysLogMessage,
Grids, DBGrids,syslogunit;
type
TSysLogFrm = class(TForm)
SysLogServer: TIdSyslogServer;
quit_btn: TButton;
start_btn: TButton;
stop_btn: TButton;
StatusBar1: TStatusBar;
setup_btn: TButton;
MsgView_memo: TMemo;
clearview_btn: TButton;
procedure quit_btnClick(Sender: TObject);
procedure start_btnClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SysLogServerSyslog(Sender: TObject;
ASysLogMessage: TIdSysLogMessage; ABinding: TIdSocketHandle);
procedure FormDestroy(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure clearview_btnClick(Sender: TObject);
private
{ Private declarations }
SysDatabaseLoger :TSysLog;
public
{ Public declarations }
end;
var
SysLogFrm: TSysLogFrm;
implementation
{$R *.dfm}
procedure TSysLogFrm.quit_btnClick(Sender: TObject);
begin
close ;
end;
procedure TSysLogFrm.start_btnClick(Sender: TObject);
begin
//启动服务器
end;
procedure TSysLogFrm.FormCreate(Sender: TObject);
begin
//创建 日志服务器的对象
SysDatabaseLoger := TSysLog.create;
SysLogServer := TIdSyslogServer.Create(nil);
end;
procedure TSysLogFrm.SysLogServerSyslog(Sender: TObject;
ASysLogMessage: TIdSysLogMessage; ABinding: TIdSocketHandle);
var
ttIp :string ;
ttHostname : string ;
ttNamepath : string ;
ttText : string ;
begin
//禁用退出按键,防止意外发生
quit_btn.Enabled := false ;
//取得消息的详细信息
ttIP := ABinding.IP;
ttHostName := ASysLogMessage.Hostname ;
ttNamepath := ASysLogMessage.msg.GetNamePath;
ttText := ASysLogMessage.Msg.Text ;
//对StringGrid添加数据方便查看
try
SysDatabaseLoger.InsertRec(ttIP,ttHostName,ttNamepath,ttText);
except
application.MessageBox('error while writing database .','error',MB_OK);
end;
MsgView_memo.Lines.Add(
intTostr(MsgView_memo.Lines.Count)
+' '+DatetimeToStr(now)
+' '+ttIP
+' '+ttHostName
+' '+ttNamepath
+' '+ttText);
if MsgView_memo.Lines.Count >=10 then
MsgView_memo.Lines.Clear;
//启用退出按键,防止意外发生
quit_btn.Enabled := true ;
end;
procedure TSysLogFrm.FormDestroy(Sender: TObject);
begin
SysDatabaseLoger.Free;
SysLogServer.Free;
end;
procedure TSysLogFrm.FormResize(Sender: TObject);
begin
MsgView_memo.Width := self.ClientWidth-15 ;
MsgView_memo.Height := self.ClientHeight-70 ;
end;
procedure TSysLogFrm.clearview_btnClick(Sender: TObject);
begin
MsgView_Memo.Lines.Clear;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -