c# - How to find out EventProperty name? -
my c# application subscribes windows event log messages:
var subscriptionquery = new eventlogquery(settings.default.logpath, pathtype.logname, settings.default.logquery); _watcher = new eventlogwatcher(subscriptionquery); _watcher.eventrecordwritten += eventlogeventread; when message occurs eventlogeventread handler reseives system.diagnostics.eventing.reader.eventlogrecord object, containing event data. information includes collection of eventproperty objects. problem is: eventproperty defines value, not name of property. however, when open same event in windows event log viewer, shows properties names. question is: how event propery names?
there 2 ways go (that know of), both involve parsing xml.
eventrecord has function toxml includes userdata section, containing values block.
the other option bit more complicated: create providermetadata, find eventmetadata describes current eventrecord, , parse template member. template member explains how interpret values (even including types), in xml format.
var meta = new providermetadata(record.providername).events.where(evt => evt.id == eventrecord.id).firstordefault();
Comments
Post a Comment