protected sealed override bool run() { var message = Message.GetValue(); var args = Args.GetValue(); var eventId = EventId.GetValueAsObject(); var exception = Exception.GetValue(); if (eventId == null && exception == null) { log(_logger, message, args); } else if (eventId != null && exception == null) { log(_logger, (EventId)eventId, message, args); } else if (eventId == null && exception != null) { log(_logger, exception, message, args); } else { log(_logger, (EventId)eventId, exception, message, args); } return(true); }