Anandkumar Prajapati Ответов: 2

Как инициализировать любой регистратор в одном месте, чтобы использовать его в каждом контроллере


Как инициализировать любой регистратор в одном месте, чтобы использовать его в нескольких контроллерах

Что я уже пробовал:

Logger logger = LogManager.GetCurrentClassLogger();

2 Ответов

Рейтинг:
2

F-ES Sitecore

Сделайте "logger" статической переменной, определенной где-то подходящим, например в статическом классе "Log". Или если вы используете контейнер IOC, то большинство из них позволяют вам зарегистрировать компонент "синглтон", поэтому зарегистрируйте свой регистратор как синглтон, а затем просто разрешите его из вашего контейнера IOC как обычно, или снова создайте новый класс, который инициализирует регистратор и вернет его как свойство, а затем зарегистрируйте этот класс как синглтон в вашем контейнере IOC.


Рейтинг:
1

Anuj Vohra

Вы можете запустить регистратор в файле Program.cs Main методом для .NET Core.

Пример:

Log.Logger = new LoggerConfiguration()
                  .MinimumLevel.Debug()
                  .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
                  .Enrich.FromLogContext()
                  .WriteTo.RollingFile( config["Paths:LogFilePath"] + @"\.log")
                  .Enrich.WithProperty("ApplicationName","APP_NAME")
                  .CreateLogger();



Приведенный выше пример предназначен для Серилог реализация


Dave Kreskowiak

Существует тонна библиотек регистрации, и вы публикуете "решение" для одной конкретной библиотеки, которую вы даже не знаете, использует ли OP или нет.

[no name]

Что в этом плохого?