Регистратор Serilog, использующий var logger, ничего не выводит ни на консоль, ни в файл.C#

Место общения программистов C#
Ответить
Anonymous
 Регистратор Serilog, использующий var logger, ничего не выводит ни на консоль, ни в файл.

Сообщение Anonymous »

В .NET у меня есть следующий код

Код: Выделить всё

var logger =  new LoggerConfiguration()
.Enrich.WithProperty("Assembly", assembly?.Name)
.Enrich.FromLogContext()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Debug)
.WriteTo.Console(
theme: Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme.Code,
formatProvider: CultureInfo.CurrentCulture,
outputTemplate: "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff}][{Level:u3}] {Message:lj} {NewLine}{Exception}",
restrictedToMinimumLevel: LogEventLevel.Debug)
.WriteTo.File(
path: "Logs/log-.log",
outputTemplate: "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff}][{Level:u3}] {Message:lj} {NewLine}{Exception}",
rollingInterval: RollingInterval.Day,
restrictedToMinimumLevel: LogEventLevel.Debug,
formatProvider: CultureInfo.CurrentCulture)
.WriteTo.Sink(new WebSocketSink(logChannel), LogEventLevel.Debug)
.WriteTo.Seq("http://localhost:5341")
.CreateLogger();
Когда я передаю этот регистратор в качестве аргумента другим классам Microsoft, где используется ILogger,
операторы протоколирования не отображаются ни на консоли, ни в файле.
Но когда я изменю его на

Код: Выделить всё

Log.logger = new LoggerConfiguration()..
Операторы журналирования начинают появляться как на консоли, так и в файле.
Вот отрывок из класса, который я использую ILogger в качестве аргумента.

Код: Выделить всё

public class MyService(IDeviceIO devIO, ILogger logger) : IMyService
{
/// 
public void OpenDevice(string host)
{

logger.LogInformation("Device is being opened!");
devIO.Open(host);
}
...
Почему я не могу использовать var logger = .. ? Нужно ли мне всегда использовать Log.logger, статический экземпляр которого всегда?

Подробнее здесь: https://stackoverflow.com/questions/786 ... sole-or-in
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»