Skip to content

Instantly share code, notes, and snippets.

View dimitrispaxinos's full-sized avatar

Dimitris Paxinos dimitrispaxinos

View GitHub Profile
@dimitrispaxinos
dimitrispaxinos / LogWithClassNameInTheContext.cs
Created November 3, 2015 18:37
Serilog: Include class name in the context
// Explicitly including the class
Log.Logger.ForContext<MainWindow>().Information("This log entry includes the class name as context");
// More generic getting the type of the class we are in
Log.Logger.ForContext(this.GetType()).Information("This log entry includes the class name as context");
@dimitrispaxinos
dimitrispaxinos / LogWithDynamicContextObject.cs
Last active April 7, 2017 18:57
Serilog: Log with dynamic Object
var dynamicObject = new
{
OperatingSystem = "Windows",
Username = "TestUser",
OneMoreRandomProperty = "Random Property Value "
};
using (LogContext.PushProperty("DynamicObject", dynamicObject, destructureObjects: true))
{
Log.Logger.Information("This log entry includes a dynamic object");
@dimitrispaxinos
dimitrispaxinos / LogWithStructuredContextProperty.cs
Last active November 3, 2015 22:31
Serilog: Log using a structured Object in the context
// Declare Person class
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
// Instantiate a Person
var person = new Person()
{
@dimitrispaxinos
dimitrispaxinos / LogWithBasicContextProperty.cs
Last active November 3, 2015 22:25
Serilog: Log with basic context property
// Add log event with a contextual property
using (LogContext.PushProperty("User", "Test User"))
{
Log.Logger.Information("This log entry includes a contextual property");
}
// Add log event without contextual properties
Log.Logger.Information("This log entry does not include any contextual property");
@dimitrispaxinos
dimitrispaxinos / LoggerWithContext.cs
Created November 3, 2015 16:22
Serilog: Create Logger that can include some context
// Create Logger with Context
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext() // Enrich with context when available
.WriteTo.Seq("http://localhost:5341")
.CreateLogger();
@dimitrispaxinos
dimitrispaxinos / ExceptionInTheLogEvent.cs
Last active October 31, 2015 18:16
Serilog: Attach an Exception to your Log Event
Log.Logger.Error(new InvalidOperationException("Something went wrong"),
"This exception occured in the {ApplicationComponent}", "UI");
@dimitrispaxinos
dimitrispaxinos / SturcturedObjectInTheLogEvent.cs
Last active October 31, 2015 13:22
Serilog: Add Structured Objects to your Log Event
// Declare Person class
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
// Instantiate a Person
var person = new Person()
{
@dimitrispaxinos
dimitrispaxinos / ParametersInLoggingEvent.cs
Last active October 31, 2015 14:30
Serilog: Including Parameters in your Logging Event
// Define two input parameters
string fName = "Dimitris";
string lName = "Paxinos";
// Include them in a way similar to the String.Format way.
Log.Logger.Information("My name is {FirstName} {LastName}", fName, lName);
@dimitrispaxinos
dimitrispaxinos / PublishLog.cs
Last active October 31, 2015 11:11
Publish a log event with Serilog
// Publish a log event of any of the available six levels
Log.Logger.Verbose("Verbose");
Log.Logger.Debug("Debug");
Log.Logger.Information("Information");
Log.Logger.Warning("Warning");
Log.Logger.Error("Error");
Log.Logger.Fatal("Fatal");
@dimitrispaxinos
dimitrispaxinos / Logger.cs
Last active October 31, 2015 11:13
Serilog Logger Initialization
// Create an Logger
Log.Logger = new LoggerConfiguration()
.WriteTo.Seq("http://localhost:5341")
.CreateLogger();