Skip to content

dorzeidman/serliog-ttransformer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

serliog-ttransformer Build status

Serilog T Generic Transformer

This package allows to transform object logged in Serilog. You can ignore, mask, rename or write your custom transformer. The package is written to support clean architecture, separating class creation from how it is written.

Installation

Install from NuGet:

Install-Package SerliogTTransformer

Modify logger configuration:

var log = new LoggerConfiguration()
	.AddTTransformer()
	.Destructure.Transform<User>(b => b. ...)
  ...

How to use:

public class User
{
  public string Username { get; set; }
  public string Password { get; set; }
  public string Phone { get; set; }
}

Ignoring a property

var log = new LoggerConfiguration()
	.AddTTransformer()
	.Destructure.Transform<User>(b => b.Ignore(u => u.Password))
  ...
 

Masking entire property with Xs

var log = new LoggerConfiguration()
	.AddTTransformer()
	.Destructure.Transform<User>(b => b.Ignore(u => u.Password, 'X'))
  ...
 

Masking Property - partial chars, show first 3 chars and last 3 chars

var log = new LoggerConfiguration()
	.AddTTransformer()
	.Destructure.Transform<User>(b => b.Ignore(u => u.Phone, 3, 3))
  ...
 

Rename Property

var log = new LoggerConfiguration()
	.AddTTransformer()
	.Destructure.Transform<User>(b => b.Rename(u => u.Username, "Name"))
  ...
 

Custom Transformer - MyCustomerTranformer implements: IPropertyTransformer

var log = new LoggerConfiguration()
	.AddTTransformer()
	.Destructure.Transform<User>(b => b.Transform(u => u.Username, new MyCustomerTranformer()))
  ...