Quiero consultar el registro de eventos de la aplicación en una máquina remota y recurrí al uso de EventLogReader en lugar de EventLog porque lleva mucho tiempo encontrar los eventos que necesito con EventLog. Sin embargo, a pesar de que encuentra los eventos mucho más rápidos con EventLogReader, no puedo averiguar dónde diablos está la información que necesito en este objeto ... especialmente el mensaje.EventLogReader y EventRecord: ¿Dónde está el mensaje?
public static void Load()
{
string query = "*[System/Provider/@Name=\"SQLSERVERAGENT\"]";
EventLogQuery elq = new EventLogQuery("Application", PathType.LogName, query);
elq.Session = new EventLogSession("x.x.x.x");
EventLogReader elr = new EventLogReader(elq);
_logEntries = new List<SqlEventEntry>();
EventRecord entry;
while ((entry = elr.ReadEvent()) != null)
{
var Message = entry.???
// I want process the message in the event here,
// but I can't find a property anywhere that contains the message??
}
}
De nuevo visor de eventos al rescate. ¿Hay una o más propiedades 'entry.EventData' (ya sea un enumerable llamado' Data' o simplemente varias propiedades nombradas)? Estoy apuñalando en la oscuridad un poco, pero también puedes abrir eventvwr.msc, abrir un evento aleatorio y mirar la vista XML. –
@lc. Lo descubrí y publiqué la respuesta. Gracias por tu ayuda. –
Sí, es una lástima que no haya documentación sobre esto en MSDN. Lo siento solo por apuñalar en la oscuridad :-P –