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

Estratégias de negociação

Logging para um ficheiro de teste

  1. Primeiro, tem de criar o gestor especial:

    var logManager = new LogManager();
    
  2. 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);
    
  3. Para registar mensagens, tem de adicionar uma estratégia a LogManager.Sources:

    logManager.Sources.Add(lkohSmaStrategy);
    
  4. Depois de adicionar a estratégia ao gestor de logging, todas as suas mensagens serão gravadas no ficheiro.

Reprodução de som

  1. 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);
    
  2. 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

  1. 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);
    
  2. 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

  1. 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);
    
  2. Esta é a janela de log quando a estratégia está a funcionar: strategylogging

Conteúdo recomendado

Componentes visuais de logging