FireDACでアプリケーションとデータベースの通信ログを取得する(2)テキストファイルに出力する

前の記事(FireDACでアプリケーションとデータベースの通信ログを取得する(1)FDMonitorに出力する)では付属の通信追跡ソフトFDMonitorに通信ログを出力する方法を紹介しました。

今回は、テキストファイルにFireDACでアプリケーションとデータベースの通信ログを出力する方法です。

テキストファイルに通信ログを出力するには、TFDMoniFlatFileClientLinkコンポーネントを配置し、FileNameプロパティにログファイルのファイル名を設定し、TracingプロパティをTrueにします。

TFDMoniFlatFileClientLinkコンポーネント

// ログを出力するファイルのファイル名
FDMoniFlatFileClientLink1.FileName := 'C:\log\log.txt';

// 監視を有効にする
FDMoniRemoteClientLink1.Tracing := True;

またTFDConnectionコンポーネントの接続定義パラメータの「MonitorBy」を「FlatFile」にします。

FDConnection1.Params.Add('MonitorBy=FlatFile'); // 追跡出力をファイルに送る

以上で、設定は完了です。

アプリケーションとデータベースの間で通信が行われると、テキストファイルに通信ログが出力されます。

サンプルアプリケーション

SQLiteデータベースの通信ログをテキストファイルに出力するアプリケーションです。

新規にVCLフォームアプリケーションを作成し、フォームに次のコンポーネントを配置します。

  • TButton
  • TFDConnection
  • TFDGUIxWaitCursor
  • TFDPhysSQLiteDriverLink
  • TFDMoniFlatFileClientLink

デザイン画面

Button1のOnClickイベントを記述します。

procedure TForm1.Button1Click(Sender: TObject);
begin
  // ログを出力するファイルのファイル名
  FDMoniFlatFileClientLink1.FileName := 'C:\log\log.txt';
  // 監視を有効にする
  FDMoniFlatFileClientLink1.Tracing := True;
  // 接続設定
  FDConnection1.Params.Clear;
  FDConnection1.Params.Add('DriverID=SQLite');
  FDConnection1.Params.Add('Database=:memory:');
  FDConnection1.Params.Add('MonitorBy=FlatFile'); // 追跡出力をファイルに送る
  //sqlite3.dllのパス
  FDPhysSQLiteDriverLink1.VendorLib := 'C:\driver\sqlite3.dll';
  // 接続する
  FDConnection1.Connected := True;

  FDConnection1.ExecSQL('create table testtab (id integer, name text)');
  FDConnection1.ExecSQL('insert into testtab(id, name) values (:id, :name)',
    ['1', 'RAD Studio XE5'], [ftInteger, ftString]);
  FDConnection1.ExecSQL('insert into testtab(id, name) values (:id, :name)',
    ['2', 'Delphi XE5'], [ftInteger, ftString]);

  // 追跡出力を一時的に無効にする
  FDConnection1.ConnectionIntf.Tracing := False;

  FDConnection1.ExecSQL('insert into testtab(id, name) values (:id, :name)',
    ['3', 'C++Builder XE5'], [ftInteger, ftString]);

  FDConnection1.Close;
end;

アプリケーションを実行してボタンを押すとFDMonitorに通信ログが表示されます。

実行時画面

ログファイル

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください