<PackageReference Include="Relativity.Server.Transfer.SDK" Version="7.7.0" />

LogExtensions

public static class LogExtensions
using System; using System.Collections.Generic; namespace Relativity.Transfer { public static class LogExtensions { private const string PrefixBatchTemplate = "Batch {BatchNumber} of {TotalBatchCount} - {ApplicationName} - {ClientRequestId} - {JobId} - {Direction} - "; private const string PrefixBatchNoIdsTemplate = "Batch {BatchNumber} of {TotalBatchCount} - {ApplicationName} - {Direction} - "; private const string PrefixTemplate = "{ApplicationName} - {ClientRequestId} - {JobId} - {Direction} - "; private const string PrefixNoIdsTemplate = "{ApplicationName} - {Direction} - "; private static readonly object SyncRoot = new object(); private static readonly string ApplicationNameCache = GlobalSettings.Instance.ApplicationName; [Obsolete("This method is replaced by LogExtensions.LogTransferStatistics")] public static void LogStatistics2(this ITransferLog log, ITransferRequest request, ITransferStatistics statistics) { log.LogTransferStatistics(request, statistics); } [Obsolete("This method is replaced by LogExtensions.LogTransferDebug")] public static void LogDebug2(this ITransferLog log, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogTransferDebug(request, messageTemplate, propertyValues); } [Obsolete("This method is replaced by LogExtensions.LogTransferDebug")] public static void LogDebug2(this ITransferLog log, Exception exception, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogTransferDebug(exception, request, messageTemplate, propertyValues); } [Obsolete("This method is replaced by LogExtensions.LogTransferInformation")] public static void LogInformation2(this ITransferLog log, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogTransferInformation(request, messageTemplate, propertyValues); } [Obsolete("This method is replaced by LogExtensions.LogTransferInformation")] public static void LogInformation2(this ITransferLog log, Exception exception, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogTransferInformation(exception, request, messageTemplate, propertyValues); } [Obsolete("This method is replaced by LogExtensions.LogTransferWarning")] public static void LogWarning2(this ITransferLog log, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogTransferWarning(request, messageTemplate, propertyValues); } [Obsolete("This method is replaced by LogExtensions.LogTransferWarning")] public static void LogWarning2(this ITransferLog log, Exception exception, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogTransferWarning(exception, request, messageTemplate, propertyValues); } [Obsolete("This method is replaced by LogExtensions.LogTransferError")] public static void LogError2(this ITransferLog log, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogTransferError(request, messageTemplate, propertyValues); } [Obsolete("This method is replaced by LogExtensions.LogTransferError")] public static void LogError2(this ITransferLog log, Exception exception, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogTransferError(exception, request, messageTemplate, propertyValues); } public static void LogTransferStatistics(this ITransferLog log, ITransferRequest request, ITransferStatistics statistics) { if (log == null) throw new ArgumentNullException("log"); if (request == null) throw new ArgumentNullException("request"); if (statistics == null) throw new ArgumentNullException("statistics"); if (GlobalSettings.Instance.StatisticsLogEnabled) log.LogTransferInformation(request, "Progress: {Progress:00.00}%, Files: {TotalTransferredFiles}/{TotalRequestFiles}, Bytes: {TotalTransferredBytes}/{TotalBytes}, Rate: {TransferRateMbps:0.00} Mbps, Remaining: {RemainingTime:hh\\:mm\\:ss}", statistics.Progress, statistics.TotalTransferredFiles, statistics.TotalRequestFiles, statistics.TotalTransferredBytes, statistics.TotalRequestBytes, statistics.TransferRateMbps, statistics.RemainingTime); } public static void LogTransferDebug(this ITransferLog log, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogTransferDebug(null, request, messageTemplate, propertyValues); } public static void LogTransferDebug(this ITransferLog log, Exception exception, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogInternal(exception, request, messageTemplate, log.LogDebug, log.LogDebug, propertyValues); } public static void LogTransferInformation(this ITransferLog log, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogTransferInformation(null, request, messageTemplate, propertyValues); } public static void LogTransferInformation(this ITransferLog log, Exception exception, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogInternal(exception, request, messageTemplate, log.LogInformation, log.LogInformation, propertyValues); } public static void LogTransferWarning(this ITransferLog log, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogTransferWarning(null, request, messageTemplate, propertyValues); } public static void LogTransferWarning(this ITransferLog log, Exception exception, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogInternal(exception, request, messageTemplate, log.LogWarning, log.LogWarning, propertyValues); } public static void LogTransferError(this ITransferLog log, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogTransferError(null, request, messageTemplate, propertyValues); } public static void LogTransferError(this ITransferLog log, Exception exception, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogInternal(exception, request, messageTemplate, log.LogError, log.LogError, propertyValues); } public static void LogTransferFatal(this ITransferLog log, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogTransferError(null, request, messageTemplate, propertyValues); } public static void LogTransferFatal(this ITransferLog log, Exception exception, ITransferRequest request, string messageTemplate, params object[] propertyValues) { log.LogInternal(exception, request, messageTemplate, log.LogFatal, log.LogFatal, propertyValues); } public static void LogStatistics(this ITransferLog log, ITransferStatistics statistics) { if (log == null) throw new ArgumentNullException("log"); if (statistics == null) throw new ArgumentNullException("statistics"); string str = "Job complete statistics"; if (statistics.Request.TotalBatchCount > 0) log.LogTransferInformation(statistics.Request, str + " - Batch: {BatchNumber} of TotalBatchCount: {TotalBatchCount}", statistics.Request.BatchNumber, statistics.Request.TotalBatchCount); if (statistics.JobError) log.LogTransferInformation(statistics.Request, str + " - JobErrorCode: {JobErrorCode}, JobErrorMessage: {JobErrorMessage}", statistics.JobErrorCode, statistics.JobErrorMessage); if (statistics.TotalFailedFiles > 0) log.LogTransferInformation(statistics.Request, str + " - TotalFailedFiles: {TotalFailedFiles}", statistics.TotalFailedFiles); log.LogTransferInformation(statistics.Request, str + " - TotalRequestFiles: {TotalRequestFiles}, TotalRequestBytes: {TotalRequestBytes}", statistics.TotalRequestFiles, statistics.TotalRequestBytes); if (statistics.TotalSkippedFiles > 0) log.LogTransferInformation(statistics.Request, str + " - TotalSkippedFiles: {TotalSkippedFiles}", statistics.TotalSkippedFiles); log.LogTransferInformation(statistics.Request, str + " - TotalTransferredFiles: {TotalTransferredFiles}, TotalTransferredBytes: {TotalTransferredBytes}", statistics.TotalTransferredFiles, statistics.TotalTransferredBytes); } private static void LogInternal(this ITransferLog log, Exception exception, ITransferRequest request, string messageTemplate, Action<Exception, string, object[]> logActionWithException, Action<string, object[]> logActionWithoutException, params object[] propertyValues) { if (log == null) throw new ArgumentNullException("log"); lock (SyncRoot) { bool commandLineModeEnabled = GlobalSettings.Instance.CommandLineModeEnabled; int num = request?.BatchNumber ?? 0; int num2 = request?.TotalBatchCount ?? 0; string str; object[] collection; if (num == 0 && num2 == 0) { if (!commandLineModeEnabled) { str = "{ApplicationName} - {ClientRequestId} - {JobId} - {Direction} - "; collection = new object[4] { ApplicationNameCache, request?.ClientRequestId, request?.JobId.GetValueOrDefault(), request?.Direction }; } else { str = "{ApplicationName} - {Direction} - "; collection = new object[2] { ApplicationNameCache, request?.Direction }; } } else if (!commandLineModeEnabled) { str = "Batch {BatchNumber} of {TotalBatchCount} - {ApplicationName} - {ClientRequestId} - {JobId} - {Direction} - "; collection = new object[6] { num, num2, ApplicationNameCache, request?.ClientRequestId, request?.JobId.GetValueOrDefault(), request?.Direction }; } else { str = "Batch {BatchNumber} of {TotalBatchCount} - {ApplicationName} - {Direction} - "; collection = new object[4] { num, num2, ApplicationNameCache, request?.Direction }; } List<object> list = new List<object>(collection); LogRedaction.MoveRedactedPositions(list.Count, propertyValues); list.AddRange(propertyValues); if (exception != null) logActionWithException(exception, str + messageTemplate, list.ToArray()); else logActionWithoutException(str + messageTemplate, list.ToArray()); } } } }