本文整理汇总了C#中ILog.WarnException方法的典型用法代码示例。如果您正苦于以下问题:C# ILog.WarnException方法的具体用法?C# ILog.WarnException怎么用?C# ILog.WarnException使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ILog
的用法示例。
在下文中一共展示了ILog.WarnException方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Consumer
/// <summary>
/// Initializes a new instance of the <see cref="T:System.Object"/> class.
/// </summary>
public Consumer(ILastReadFeedItemDAO lastReadFeedItemDao, IAmACommandProcessor commandProcessor, ILog logger)
{
_lastReadFeedItemDao = lastReadFeedItemDao;
_commandProcessor = commandProcessor;
_logger = logger;
_atomFeedGateway = new AtomFeedGateway(_lastReadFeedItemDao, _logger);
_retryPolicy = Policy
.Handle<ApplicationException>()
.RetryForever(exception => logger.WarnException("Error connecting to the server - will retry", exception));
}
示例2: ConnectionPolicyFactory
/// <summary>
/// Initializes a new instance of the <see cref="ConnectionPolicyFactory"/> class.
/// </summary>
/// <param name="logger">The logger.</param>
public ConnectionPolicyFactory(ILog logger)
{
_logger = logger;
var configuration = RMQMessagingGatewayConfigurationSection.GetConfiguration();
int retries = configuration.AMPQUri.ConnectionRetryCount;
int retryWaitInMilliseconds = configuration.AMPQUri.RetryWaitInMilliseconds;
int circuitBreakerTimeout = configuration.AMPQUri.CircuitBreakTimeInMilliseconds;
RetryPolicy = Policy.Handle<BrokerUnreachableException>()
.Or<Exception>()
.WaitAndRetry(
retries,
retryAttempt => TimeSpan.FromMilliseconds(retryWaitInMilliseconds * Math.Pow(2, retryAttempt)),
(exception, timeSpan, context) =>
{
if (exception is BrokerUnreachableException)
{
logger.WarnException(
"RMQMessagingGateway: BrokerUnreachableException error on connecting to queue {0} exchange {1} on connection {2}. Will retry {3} times",
exception,
context["queueName"],
configuration.Exchange.Name,
configuration.AMPQUri.GetSanitizedUri(),
retries);
}
else
{
logger.WarnException(
"RMQMessagingGateway: Exception on connection to queue {0} via exchange {1} on connection {2}",
exception,
context["queueName"],
configuration.Exchange.Name,
configuration.AMPQUri.GetSanitizedUri());
throw exception;
}
});
CircuitBreakerPolicy = Policy.Handle<BrokerUnreachableException>().CircuitBreaker(1, TimeSpan.FromMilliseconds(circuitBreakerTimeout));
}
示例3: ApplyConflictOnDestinationAsync
protected async Task<SynchronizationReport> ApplyConflictOnDestinationAsync(ConflictItem conflict, RavenJObject remoteMetadata, IAsyncFilesSynchronizationCommands destination, string localServerUrl, ILog log)
{
var commands = (IAsyncFilesCommandsImpl)destination.Commands;
log.Debug("File '{0}' is in conflict with destination version from {1}. Applying conflict on destination", FileName, commands.UrlFor());
try
{
var version = conflict.RemoteHistory.Last().Version;
var serverId = conflict.RemoteHistory.Last().ServerId;
var history = new List<HistoryItem>(conflict.RemoteHistory);
history.RemoveAt(conflict.RemoteHistory.Count - 1);
await destination.ApplyConflictAsync(FileName, version, serverId, remoteMetadata, localServerUrl);
}
catch (Exception ex)
{
log.WarnException(string.Format("Failed to apply conflict on {0} for file '{1}'", destination, FileName), ex);
}
return new SynchronizationReport(FileName, FileETag, SynchronizationType)
{
Exception = new SynchronizationException(string.Format("File {0} is conflicted", FileName)),
};
}