private static void Main() { var logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.ColoredConsole( outputTemplate: "{Timestamp:HH:mm:ss} ({ThreadId}) [{Level}] {Message}{NewLine}{Exception}") .WriteTo.Trace() .Enrich.WithProperty("App", "Test Harness") .Enrich.With(new ThreadIdEnricher(), new MachineNameEnricher()) .CreateLogger(); logger.Information("Just biting {Fruit} number {Count}", "Apple", 12); logger.ForContext<Program>().Information("Just biting {Fruit} number {Count:0000}", "Apple", 12); using (logger.BeginTimedOperation("Time a thread sleep for 2 seconds.")) { Thread.Sleep(1000); using (logger.BeginTimedOperation("And inside we try a Task.Delay for 2 seconds.")) { Task.Delay(2000).Wait(); } Thread.Sleep(1000); } using (logger.BeginTimedOperation("Using a passed in identifier", "test-loop")) { var a = ""; for (int i = 0; i < 1000; i++) { a += "b"; } } // Exceed a limit using (logger.BeginTimedOperation("This should execute within 1 second.", null, LogEventLevel.Debug, TimeSpan.FromSeconds(1))) { Thread.Sleep(1100); } // Gauge var queue = new Queue<int>(); var gauge = logger.GaugeOperation("queue", "item(s)", () => queue.Count()); gauge.Write(); queue.Enqueue(20); gauge.Write(); queue.Dequeue(); gauge.Write(); // Counter var counter = logger.CountOperation("counter", "operation(s)", true, LogEventLevel.Debug); counter.Increment(); counter.Increment(); counter.Increment(); counter.Decrement(); Console.WriteLine("Press a key to exit."); Console.ReadKey(true); }
static void Main() { var logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.ColoredConsole( outputTemplate: "{Timestamp:HH:mm:ss} ({ThreadId}) [{Level}] {Message}{NewLine}{Exception}") .WriteTo.Trace() .Enrich.With(new ThreadIdEnricher(), new MachineNameEnricher()) .CreateLogger(); using (logger.BeginTimedOperation("Time a thread sleep for 2 seconds.")) { Thread.Sleep(1000); using (logger.BeginTimedOperation("And inside we try a Task.Delay for 2 seconds.")) { Task.Delay(2000).Wait(); } Thread.Sleep(1000); } using (logger.BeginTimedOperation("Using a passed in identifier", "test-loop")) { // ReSharper disable once NotAccessedVariable var a = ""; for (var i = 0; i < 1000; i++) { a += "b"; } } // Exceed a limit using (logger.BeginTimedOperation("This should execute within 1 second.", null, LogEventLevel.Debug, TimeSpan.FromSeconds(1))) { Thread.Sleep(1100); } // Gauge var queue = new Queue<int>(); var gauge = logger.GaugeOperation("queue", "item(s)", () => queue.Count()); gauge.Write(); queue.Enqueue(20); gauge.Write(); queue.Dequeue(); gauge.Write(); // Counter var counter = logger.CountOperation("counter", "operation(s)", true, LogEventLevel.Debug, resolution: 2); counter.Increment(); counter.Increment(); counter.Increment(); counter.Decrement(); System.Console.WriteLine("Press a key to exit."); System.Console.ReadKey(true); }