策略记录
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);
正在登录日志窗口
创建 GuiLogListener 日志记录器:
// 每个策略都有自己的窗口 var guiListener = new GuiLogListener(); logManager.Listeners.Add(guiListener); logManager.Sources.Add(lkohSmaStrategy);这是策略运行时的日志窗口:
