コード例 #1
0
        void Write(ILogger target, LogEventLevel level, string outcome)
        {
            _completionBehaviour = CompletionBehaviour.Silent;

            var elapsed = _stopwatch.Elapsed.TotalMilliseconds;

            target.Write(level, _exception, $"{_messageTemplate} {{{nameof(Properties.Outcome)}}} in {{{nameof(Properties.Elapsed)}:0.0}} ms", _args.Concat(new object[] { outcome, elapsed }).ToArray());

            PopLogContext();
        }
コード例 #2
0
 internal Operation(ILogger target, string messageTemplate, object[] args, CompletionBehaviour completionBehaviour, LogEventLevel completionLevel, LogEventLevel abandonmentLevel)
 {
     _target              = target ?? throw new ArgumentNullException(nameof(target));
     _messageTemplate     = messageTemplate ?? throw new ArgumentNullException(nameof(messageTemplate));
     _args                = args ?? throw new ArgumentNullException(nameof(args));
     _completionBehaviour = completionBehaviour;
     _completionLevel     = completionLevel;
     _abandonmentLevel    = abandonmentLevel;
     _popContext          = LogContext.PushProperty(nameof(Properties.OperationId), Guid.NewGuid());
     _start               = GetTimestamp();
 }
コード例 #3
0
 internal Operation(ILogger target, string messageTemplate, object[] args, CompletionBehaviour completionBehaviour, LogEventLevel completionLevel, LogEventLevel abandonmentLevel)
 {
     if (target == null)
     {
         throw new ArgumentNullException(nameof(target));
     }
     if (messageTemplate == null)
     {
         throw new ArgumentNullException(nameof(messageTemplate));
     }
     if (args == null)
     {
         throw new ArgumentNullException(nameof(args));
     }
     _target              = target;
     _messageTemplate     = messageTemplate;
     _args                = args;
     _completionBehaviour = completionBehaviour;
     _completionLevel     = completionLevel;
     _abandonmentLevel    = abandonmentLevel;
     _popContext          = LogContext.PushProperty(nameof(Properties.OperationId), Guid.NewGuid());
     _stopwatch           = Stopwatch.StartNew();
 }
コード例 #4
0
 /// <summary>
 /// Cancel the timed operation. After calling, no event will be recorded either through
 /// completion or disposal.
 /// </summary>
 public void Cancel()
 {
     _completionBehaviour = CompletionBehaviour.Silent;
     PopLogContext();
 }