public void Error(string message, Exception e) { if (!_isEnabled) { return; } RequestInfo requestInfo = null; var messageObject = new { Application = string.Empty, Message = string.Empty, StackTrace = string.Empty, InnerExceptionString = new Exception(), RequestInfo = requestInfo, }; if (e is MarketplaceWebServiceException mwsWebServiceException) { requestInfo = new RequestInfo( mwsWebServiceException.ResponseHeaderMetadata?.Timestamp, mwsWebServiceException.RequestId, mwsWebServiceException.StatusCode, mwsWebServiceException.ErrorType, mwsWebServiceException.ErrorCode); messageObject = new { Application = "EasyMws", Message = message, StackTrace = e.StackTrace, InnerExceptionString = e.InnerException, RequestInfo = requestInfo }; } else { messageObject = new { Application = "EasyMws", Message = $"{message} {e.Message}", StackTrace = e.StackTrace, InnerExceptionString = e.InnerException, RequestInfo = requestInfo }; } var eventArgs = new LogAvailableEventArgs(LogLevel.Error, $"{JsonConvert.SerializeObject(messageObject, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, Formatting = Formatting.None })}", e) { RequestInfo = requestInfo }; EventHandler <LogAvailableEventArgs> handler = LogAvailable; handler?.Invoke(this, eventArgs); }
public void Log(LogLevel level, string message, RequestInfo requestInfo = null, Exception ex = null) { if (!_isEnabled) { return; } var messageObject = new { Application = "EasyMws", Message = message, RequestInfo = requestInfo }; LogAvailableEventArgs eventArgs; if (ex == null) { eventArgs = new LogAvailableEventArgs(level, $"{JsonConvert.SerializeObject(messageObject, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, Formatting = Formatting.None })}") { RequestInfo = requestInfo }; } else { eventArgs = new LogAvailableEventArgs(level, $"{JsonConvert.SerializeObject(messageObject, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, Formatting = Formatting.None })}", ex) { RequestInfo = requestInfo }; } EventHandler <LogAvailableEventArgs> handler = LogAvailable; handler?.Invoke(this, eventArgs); }