Logging de estratégia
A classe Strategy implementa a interface ILogSource. Por isso, as estratégias podem ser passadas para LogManager.Sources, e todas as suas mensagens chegarão automaticamente a LogManager.Listeners.
Pré-requisitos
Logging para um ficheiro de teste
Primeiro, tem de criar o gestor especial:
var logManager = new LogManager();Depois, tem de criar um logger de ficheiro, passando-lhe o nome do ficheiro, e adicioná-lo a 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);Para registar mensagens, tem de adicionar uma estratégia a LogManager.Sources:
logManager.Sources.Add(lkohSmaStrategy);Depois de adicionar a estratégia ao gestor de logging, todas as suas mensagens serão gravadas no ficheiro.
Reprodução de som
Criar um logger e passar-lhe o nome do ficheiro de som:
var soundListener = new SoundLogListener("error.mp3"); logManager.Listeners.Add(soundListener); logManager.Sources.Add(lkohSmaStrategy);Definir o filtro para que o som seja reproduzido apenas quando o tipo de mensagem for LogLevels.Error:
soundListener.Filters.Add(msg => msg.Level == LogLevels.Error);
Envio de email
Crie o logger e passe-lhe os parâmetros para as mensagens enviadas:
var emailListener = new EmailLogListener("from@stocksharp.com", "to@stocksharp.com"); logManager.Listeners.Add(emailListener); logManager.Sources.Add(lkohSmaStrategy);Definir o filtro para o envio de mensagens dos tipos LogLevels.Error e LogLevels.Warning:
emailListener.Filters.Add(msg => msg.Level == LogLevels.Error); emailListener.Filters.Add(msg => msg.Level == LogLevels.Warning);
Logging na LogWindow
Criar o logger GuiLogListener:
// cada estratégia terá a sua própria janela var guiListener = new GuiLogListener(); logManager.Listeners.Add(guiListener); logManager.Sources.Add(lkohSmaStrategy);Esta é a janela de log quando a estratégia está a funcionar:
