示例#1
0
        private static IDisposable Measure <T>(this ISemanticLog log, SemanticLogLevel logLevel, T context, LogFormatter <T> action)
        {
            var watch = ValueStopwatch.StartNew();

            return(new DelegateDisposable(() =>
            {
                var elapsedMs = watch.Stop();

                log.Log(logLevel, (Context: context, elapsedMs), null, (ctx, w) =>
                {
                    action?.Invoke(ctx.Context, w);

                    w.WriteProperty("elapsedMs", elapsedMs);
                });
            }));
        }