public override void Log(ExceptionLoggerContext context) { LoggingContext.CreateLogger <ExceptionLogger>() .LogError(context.Exception, "Request {uri} failed", context.Request.RequestUri); base.Log(context); }
private async Task <QueueItemProcessResult> ProcessMessagesAsync(QueueRequest request, IServiceBusClient sbSender, CancellationToken token) { try { // update user UserEntity dbUser = await adapterDocumentDbDependencyClient.GetUser(request.Id); dbUser.Processed = true; await adapterDocumentDbDependencyClient.UpdateUser(dbUser); await sbSenderClient.SendAsync(request); return(QueueItemProcessResult.Complete); } catch (Exception ex) { LoggingContext.CreateLogger <ServiceBusDependencyReceiver>() .LogError( ex, "{queue} item processing unhandled exception for type={type}, id={messageId}", sbReceiverClient.QueueName, request.GetType().Name, request.Id); return(QueueItemProcessResult.Retry); } }
private async Task <byte[]> HandleAndTrackRequestAsync(ServiceRemotingMessageHeaders messageHeaders, Func <Task <byte[]> > doHandleRequest) { // set service context ServiceFabricServiceContext.Set(serviceContext); // create logger per operation ILogger logger = LoggingContext.CreateLogger <CorrelatingRemotingMessageHandler>(); // Do our best effort in setting the request name. string methodName = methodNameProvider.GetMethodName(messageHeaders.InterfaceId, messageHeaders.MethodId); // Weird case, we couldn't find the method in the map. Just use the numerical id as the method name if (string.IsNullOrEmpty(methodName)) { methodName = messageHeaders.MethodId.ToString(); } // get service & operation names Uri operationUri = ServiceFabricHelper.MakeOperationUri(serviceContext.ServiceName, methodName); string operationName = ServiceFabricHelper.MakeOperationName(serviceContext.ServiceName, methodName); string serviceName = ServiceFabricHelper.GetServiceName(serviceContext.ServiceName); // create request activity Activity activity = new Activity(operationName); if (messageHeaders.TryGetHeaderValue(ServiceRemotingStrings.ParentIdHeaderName, out string parentId)) { activity.SetParentId(parentId); } // get parent operation source messageHeaders.TryGetHeaderValue(ServiceRemotingStrings.SourceHeaderName, out string source); // set activity baggage if (messageHeaders.TryGetHeaderValue(ServiceRemotingStrings.CorrelationContextHeaderName, out byte[] correlationBytes))
protected override async Task RunAsync(CancellationToken cancellationToken) { try { // init service fabric context ServiceFabricServiceContext.Set(Context); await Task.CompletedTask; } catch (Exception ex) { LoggingContext.CreateLogger <WebApi>() .LogError(ex, "Service exception in RunAsync"); } }
protected override async Task RunAsync(CancellationToken cancellationToken) { try { // init service fabric context ServiceFabricServiceContext.Set(Context); // start a service bus receiver sbReceiverClient.Receive <QueueRequest>(ProcessMessagesAsync); await Task.CompletedTask; } catch (Exception ex) { LoggingContext.CreateLogger <ServiceBusDependencyReceiver>() .LogError(ex, "Service exception in RunAsync"); } }
protected override async Task RunAsync(CancellationToken cancellationToken) { try { // init service fabric context ServiceFabricServiceContext.Set(Context); // initailize DocumentDb client factory var config = new DocumentDbConnectionConfig(); documentDbClientFactory = new DocumentDbClientFactory(config); // initilize the DOcument database & collection await UserCollectionInitializer.Initialize(documentDbClientFactory); await Task.CompletedTask; } catch (Exception ex) { LoggingContext.CreateLogger <DocumentDbDependency>() .LogError(ex, "Service exception in RunAsync"); } }