Я использую Serilog с раковиной MS SQL Server в своем приложении. Давайте предположим, что я определил следующий класс ...Добавить пользовательские свойства в Serilog
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime BirthDate { get; set; }
// ... more properties
}
... и создал экземпляр:
var person = new Person
{
FirstName = "John",
LastName = "Doe",
BirthDate = DateTime.UtcNow.AddYears(-25)
};
Я поставил следующий вызов войти мой код:
Log.Information("New user: {FirstName:l} {LastName:l}",
person.FirstName, person.LastName);
Можно ли также зарегистрировать BirthDate
объект , не добавляя его в шаблон сообщения, так что он отображается в пределах Properties
XM L столбца? Я хотел бы вывести его позже в подробном представлении просмотра журнала приложения.
В основном я ищу поведение, подобное разрушению объекта, но без печати плоского объекта как части сообщения журнала.
Я вижу, что это довольно просто. Поддерживает ли этот метод деструктурирование объектов с сложным типом (например, свойство * Father * типа «Person»)? Меня больше интересуют значения свойств, чем представление 'ToString()'. –
Абсолютно - 'Log.ForContext (« Отец », отец, destructureObjects: true)' делает это. –
Отлично! Именно то, что я искал. Я прочитал руководство, но я должен был как-то упустить это. Спасибо! –