ストラテジーのログ記録
Strategy クラスは ILogSource インターフェイスを実装しています。そのため、ストラテジーを LogManager.Sources に渡すことができ、そのすべてのメッセージは自動的に LogManager.Listeners に送られます。
前提条件
テストファイルへのログ記録
まず、専用のマネージャーを作成する必要があります。
var logManager = new LogManager();次に、ファイル名を渡してファイルロガーを作成し、それを LogManager.Listeners に追加する必要があります。
var fileListener = new FileLogListener("{0}_{1:00}_{2:00}.txt".Put(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day)); logManager.Listeners.Add(fileListener);メッセージをログに記録するには、ストラテジーを LogManager.Sources に追加する必要があります。
logManager.Sources.Add(lkohSmaStrategy);ストラテジーをログマネージャーに追加すると、そのすべてのメッセージがファイルに記録されます。
サウンド再生
ロガーを作成し、サウンドファイルの名前を渡します。
var soundListener = new SoundLogListener("error.mp3"); logManager.Listeners.Add(soundListener); logManager.Sources.Add(lkohSmaStrategy);メッセージタイプが LogLevels.Error の場合にのみサウンドが再生されるようにフィルターを設定します。
soundListener.Filters.Add(msg => msg.Level == LogLevels.Error);
メール送信
ロガーを作成し、送信するメールのパラメーターを渡します。
var emailListener = new EmailLogListener("from@stocksharp.com", "to@stocksharp.com"); logManager.Listeners.Add(emailListener); logManager.Sources.Add(lkohSmaStrategy);LogLevels.Error および LogLevels.Warning タイプのメッセージ送信に対してフィルターを設定します。
emailListener.Filters.Add(msg => msg.Level == LogLevels.Error); emailListener.Filters.Add(msg => msg.Level == LogLevels.Warning);
LogWindow へのログ記録
GuiLogListener ロガーを作成します。
// 各ストラテジーはそれぞれ独自のウィンドウを持ちます var guiListener = new GuiLogListener(); logManager.Listeners.Add(guiListener); logManager.Sources.Add(lkohSmaStrategy);ストラテジー動作中のログウィンドウは次のとおりです:
