Анотар.Серилог и логирование

Я предполагаю, что я довольно новичок в Anotar / Serilog, у меня есть мое приложение WPF, которое использует шаблон репозитория, и я имею репо, структурированный как

public class CalendarRepository : DefaultRepositoryBase, ICalendarRepository
{
    public Task<IList<CalendarTemplate>> GetCalendarTemplatesAsync(int? template)
    {
        JsonServiceClient client = GetServiceStackClient();

        var request = new CalendarTemplatesRequest
        {
            Template = template
        };
        return client.PostAsync(request);
    }

    public Task<IList<Currency>> GetCurrenciesAsync(int? currency)
    {
        JsonServiceClient client = GetServiceStackClient();

        var request = new CurrenciesRequest
        {
            Currency = currency
        };
        return client.PostAsync(request);
    }

    public Task<IList<CurrencyCalendar>> GetCurrencyCalendarsAsync(IEnumerable<int> currencies)
    {
        JsonServiceClient client = GetServiceStackClient();

        var request = new CurrencyCalendarsRequest
        {
            Currencies = currencies
        };
        return client.PostAsync(request);
    }

Прямо сейчас я регистрировался в моделях представления как

 LogTo.Information("Getting calendar currencies {SelectedCurrencies}",selectedCurrenciesId.Select(x=>x.Id));
                var items = await repository.GetCurrencyCalendarsAsync(selectedCurrenciesId.Select(x => x.Id));

Мне было интересно, есть ли Атрибут, который я могу применить к классу, чтобы автоматически регистрировать Метод и параметры.

Прямо сейчас мой журнал настроен как

 var log =
            new LoggerConfiguration().MinimumLevel.ControlledBy(
                levelSwitch: new LoggingLevelSwitch(LogEventLevel.Debug)).WriteTo.File(@".\logs\serilog.log",outputTemplate: "{Timestamp: yyyy-MM-dd HH:mm:ss.fff} [{Level}] [{SourceContext}] {Message}{NewLine}{Exception}").CreateLogger();

        Serilog.Log.Logger = log;

Спасибо

1 ответ

Вы можете получить имя метода и номер строки, добавив {Method} и {LineNumber} к выходному шаблону соответственно.

Насколько я знаю, нет способа автоматически регистрировать параметры; вам нужно будет сделать это вручную.

Другие вопросы по тегам