イベントログ
概要と主要な概念
[ロギングを有効化]チェックボックスがオンになっている場合、イベントログはモデルで発生するイベントのレコードを作成します。これは、特定のイベントの発生順序を確認するのに便利です。モデルで発生するイベントごとに、そのイベント中に発生した内容を説明する複数のエントリがイベントログに作成されます。これらの複数のエントリはすべて同じ時間になり、ステップボタンを押すとすべて同時に記録されます。モデルをリセットすると、イベントログはクリアされます。
例外がイベントログに記録されることがあります。例外エントリの直前のエントリは、例外を発生させたコードの場所を示す手がかりとなります。特に、オブジェクトのトリガー内の不適切なコードが原因で例外が発生した場合に役立ちます。システムコンソールで報告された例外は、イベントログでも報告されます。
イベントログには、メインツールバーの[デバッグ]メニューからアクセスできます。
コマンドラインでロギングを有効化する
FlexSimをバックグラウンドで実行するような一部のケースでは、イベントログを作成すると便利です。イベントログはコマンドラインで有効化できます。この種のログは、システムログと呼ばれることもあります。システムログは次のスイッチで制御します。
スイッチ | 値 | 例 |
---|---|---|
/logevents | ターゲットファイルの絶対パス。このディレクトリは必ず存在しなければなりません。存在しない場合、指定された名前を持つ新しいファイルが作成されます。このスイッチがシステムログを有効化します。他のイベントログをスイッチで指定する場合、このスイッチが存在する必要があります。 | /logevents "C:\Documents\FlexSim 2024 Projects\SystemLog.sqlite" |
/logname | 指定したファイル内にあるイベントログの名前。デフォルトは"__system"です。 | /logname "MyEventLog" |
/loglevel | 次のワードのいずれかです:INFO、WARN、ERROR、FATAL。指定したレベルより低いイベントはログに記録されません。デフォルトはINFOです。 | /loglevel ERROR |
/eventcachesize | 正の整数。パフォーマンス上の理由から、イベントはファイルにすぐに書き込まれるわけではありません。FlexSimはイベントをメモリにキャッシュし、一定の数に到達した時点で、キャッシュしたすべてのイベントを1回の書き込み操作で書き込みます。デフォルトは10000です。最小値は1です。これは発生したイベントをすぐにファイルに書き込むことを意味します。非常に低速ではあるものの、クラッシュのデバッグには便利です。クラッシュの前のイベントがファイルに書き込まれるためです。 | /eventcachesize 100 |
プロパティ
イベントログには、次のプロパティがあります。
ロギングを有効化
これにより、イベントのロギングが有効または無効になります。ロギングを有効にすると、モデルの実行速度が大幅に低下するため、イベントログを使い終えたらロギングを無効にします。
ログファイルパス
イベントログはそのデータをハードドライブ上のファイルに格納します。表示されるパスのデフォルトは相対パスです。このパスはモデルのディレクトリ(modeldir()
)を起点としています。新しいモデルの場合、モデルが保存されるまで、このパスの起点はドキュメントディレクトリ(documentsdir()
)です。パスを変更するには、付随する参照ボタン を使用します。モデルディレクトリ以外の保存先を選択すると、保存先の絶対パスが表示されます。
設定...
設定ウィンドウでは、イベントログに記録されるイベントを3つの方法で設定できます。まず、モデルの時間でフィルタリングする方法です。開始時間と、必要に応じて終了時間を調整できます。これらの時間の間に発生したイベントのみが記録されます。イベントタイプでフィルタリングすることもできます。すでに記録されているイベントは、この設定を変更しても影響を受けません。この設定を変更した後に発生したイベントは、ここで有効になっている場合のみ記録されます。最後に、レベルでフィルタリングする方法です。同じかそれより高いレベルのイベントのみが記録されます。
開始時間
ログを一定期間のみ記録する場合、ロギングを開始する時間を入力できます。
終了時間
任意で、ロギングを終了する時間を指定できます。終了時間が開始時間と同じかそれより早い場合は無視されます。
エクスポート...
これにより、イベントログがcsvファイルとしてエクスポートされます。有効なイベントのみがエクスポートされ、除外されたイベントは無視されます。
テーブル
テーブルには次のプロパティがあります。
- 時間 - イベントが発生した時間です。エントリは上から順に発生しました。同じ時間が記録されているエントリは、表示されている順に発生し、同じモデルイベントで発生した可能性があります。
- イベント - イベントのタイプです。特定のイベントタイプのロギングは、設定ウィンドウで有効または無効にできます。
- オブジェクト - イベントのオブジェクトへのパスです。
- 関連 - イベントに関連するオブジェクトへのパスです。
- P1 - P4 - これらの値はイベントによって異なり、すべてのイベントタイプに使用されない場合があります。通常は、イベントに渡されたパラメータに関する情報や、イベントタイプに関する詳細情報が提供されます。これは、パラメータ値が期待どおりでない場合のデバッグに役立ちます。EventLog APIを使用してカスタムイベントを記録する場合は、これらの値を任意の値に設定できます。
フィルタ
イベントログは、[時間]、[イベント]、[オブジェクト]、[関連]の各列に基づいてフィルタリングできます。フィルタが有効な列には が表示されます。フィルタを追加または編集するには、目的のフィルタのヘッダー名を左クリックします。フィルタリングされたために表示されなくなったイベントログのエントリは、[エクスポート]ボタンでエクスポートされません。
次のプロパティがあります。
- 時間 - 各時間フィルタには開始(左)と終了(右)のフィールドがあります。その2回以内に発生したイベントのみが表示されます。フィルタを追加するには、
アイコンをクリックします。フィルタを削除するには、
アイコンをクリックします。
- レベル - このリストでは、各イベントのレベルでリストをフィルタリングできます。レベルをリストに含めるか、リストから除外するには、その名前の横にあるチェックボックスをオンまたはオフにします。
- イベント - このリストでは、イベントが関連付けられたイベントまたはトリガーのリストをフィルタリングできます。イベントをリストに含めるか、リストから除外するには、その名前の横にあるチェックボックスをオンまたはオフにします。
- オブジェクト - このリストでは、オブジェクトで生成されたイベントのリストをフィルタリングできます。オブジェクトをリストに含めるか、リストから除外するには、その名前の横にあるチェックボックスをオンまたはオフにします。
- 関連 - このリストでは、オブジェクトがイベントに関連付けられているリストをフィルタリングできます。オブジェクトをリストに含めるか、リストから除外するには、その名前の横にあるチェックボックスをオンまたはオフにします。