Logging de estrategias
La clase Strategy implementa la interfaz ILogSource. Por lo tanto, las estrategias se pueden pasar a LogManager.Sources, y todos sus mensajes llegarán automáticamente a LogManager.Listeners.
Requisitos previos
Logging en un archivo de prueba
Primero, necesita crear el administrador especial:
var logManager = new LogManager();Después necesita crear un logger de archivo, pasándole el nombre del archivo, y agregarlo 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 registrar mensajes, debe agregar una estrategia a LogManager.Sources:
logManager.Sources.Add(lkohSmaStrategy);Después de agregar la estrategia al administrador de logging, todos sus mensajes se registrarán en el archivo.
Reproducción de sonido
Cree un logger y pásele el nombre del archivo de sonido:
var soundListener = new SoundLogListener("error.mp3"); logManager.Listeners.Add(soundListener); logManager.Sources.Add(lkohSmaStrategy);Configure el filtro para que el sonido se reproduzca solo cuando el tipo de mensaje sea LogLevels.Error:
soundListener.Filters.Add(msg => msg.Level == LogLevels.Error);
Envío de correo electrónico
Cree el logger y pásele los parámetros de las cartas enviadas:
var emailListener = new EmailLogListener("from@stocksharp.com", "to@stocksharp.com"); logManager.Listeners.Add(emailListener); logManager.Sources.Add(lkohSmaStrategy);Configure el filtro para el envío de mensajes de los tipos LogLevels.Error y LogLevels.Warning:
emailListener.Filters.Add(msg => msg.Level == LogLevels.Error); emailListener.Filters.Add(msg => msg.Level == LogLevels.Warning);
Logging en LogWindow
Cree el logger GuiLogListener:
// cada estrategia tendrá sus propias ventanas var guiListener = new GuiLogListener(); logManager.Listeners.Add(guiListener); logManager.Sources.Add(lkohSmaStrategy);Esta es la ventana de log cuando la estrategia está funcionando:
