Używam Serilog z zlewem MS SQL Server w mojej aplikacji. Załóżmy, że zostały zdefiniowane następujące klasy ...Dodaj właściwości niestandardowe do Serilog
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime BirthDate { get; set; }
// ... more properties
}
... i stworzył instancję:
var person = new Person
{
FirstName = "John",
LastName = "Doe",
BirthDate = DateTime.UtcNow.AddYears(-25)
};
umieściłem następujące połączenia dziennika w moim kodu:
Log.Information("New user: {FirstName:l} {LastName:l}",
person.FirstName, person.LastName);
Czy możliwe jest również zarejestrowanie właściwości BirthDate
właściwości bez dodawania jej do szablonu wiadomości, aby była renderowana w ramach XM Properties
L kolumna? Chciałbym wydrukować go później w widoku szczegółów przeglądarki dziennika mojej aplikacji.
Po prostu szukam zachowania podobnego do destruktury obiektu, ale bez drukowania płaskiego obiektu jako części komunikatu dziennika.
widzę, że to całkiem proste. Czy ta metoda pozwala również na destrukturyzację obiektów o złożonym typie (takich jak właściwość * Father * typu "Person")? Bardziej interesują mnie wartości właściwości niż "ToString()". –
Absolutnie - 'Log.ForContext (" Ojciec ", ojciec, destructureObjects: true)' robi to. –
Idealny! Dokładnie to, czego szukałem. Przeczytałem instrukcję, ale musiałem jakoś to przeoczyć. Dziękuję Ci! –