protected override void Write(LogEventInfo logEvent) { // A log event can be either an exception OR a message. // If both were provided, then the exception takes precedence over the message. if (logEvent.Exception != null) { Metadata metaData = null; // Do we have any metadata var bugsnagInterface = logEvent.Exception as IMetadata; if (bugsnagInterface != null) { metaData = bugsnagInterface.Metadata; } AddFormattedMessageToMetadata(ref metaData, logEvent.FormattedMessage); // Notify Bugsnag of this exception. _baseClient.Value.Notify(logEvent.Exception, logEvent.Level.ToSeverity(), metaData); } else if (!string.IsNullOrWhiteSpace(logEvent.Message)) { // We don't have an exception but we do have a message! var exception = new BugsnagException(logEvent.Message); _baseClient.Value.Notify(exception, logEvent.Level.ToSeverity()); } }