2009年6月22日月曜日

delphi で syslog 送信

ここの続き
Delphi のデバッグに四苦八苦している状況を助けるために、Delphi 版の syslog 送信ユニットを作成しました。と言っても、かなり手抜きです。ポートが合っているだけで、syslog か?というツッコミは無しで・・・。
// syslogc.pas
unit syslogc;

interface

uses Windows, WinSock, SysUtils;

procedure udp_send( msg: string );

implementation

procedure udp_send( msg: string );
var
  len: integer;
  buf: array [0..4096] of Char;
  wsaData: TWSAData;
  sock:    TSocket;
  addr:    TSockAddrIn;
begin
  len := Length(msg);
  strpcopy( buf, msg );  // 手抜き
  if 0 = WSAStartup( MakeWord(2,0), wsaData ) then begin
    sock := socket( AF_INET, SOCK_DGRAM, 0 );
    if sock <> INVALID_SOCKET then begin
      addr.sin_family := AF_INET;
      addr.sin_port   := htons(514);
      addr.sin_addr.S_addr := inet_addr(PChar('127.0.0.1'));
      sendto( sock, buf, len, 0, addr, sizeof(addr) );
    end;
    WSACleanup();
  end;
end;

end.

0 件のコメント: