Добавление Serilog ILogger в статический класс - PullRequest
0 голосов
/ 07 ноября 2018

Я хотел бы добавить Serilog Log к статическому классу в моей программе следующим образом (DataHelper - это имя класса):

private readonly ILogger _log = Log.ForContext<DataHelper>();

Но это приводит к сообщению об ошибке:

статические типы нельзя использовать в качестве аргументов типа

Что имеет смысл. Итак, как мне добавить логгер (который отлично работает в нестатических классах) в этот класс?

Обновление : ответ на указанный вами вопрос говорит о том, что это невозможно. Но согласно Github Серилога, есть обходной путь . Мне просто нужно войти в систему, чтобы знать о классе, из которого он регистрируется. На данный момент кажется, что он ведет журнал из основного класса.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Вам необходимо использовать перегрузку, которая принимает Type:

private readonly ILogger _log = Log.ForContext(typeof(DataHelper));
0 голосов
/ 07 ноября 2018

Обсуждение этой проблемы обсуждает это ограничение и предлагает решение. Описание: Используйте перегрузку ForContext(Type), которую вы можете передать типу статического класса, используя typeof(DataHelper).

...