Приемник Serilog Seq с Docker не фиксирует события

Я использую веб-API и консольные приложения на Net Core 3.1 в Windows 10 Professional. У меня есть приемники для консоли, текстового файла, файла json, mssql и seq. Каждый из них регистрирует все события, кроме seq, которые не регистрируют никаких событий.

Я установил Docker с помощью следующей команды:

docker run -d --restart except-Stop --name seq -e ACCEPT_EULA=Y -v D:\Logs\Seq:/data -p 8081:80 datalust/seq:latest

Я создал регистратор с этим кодом:

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Information()
    .MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
    .MinimumLevel.Override("System", LogEventLevel.Warning)
    .Enrich.FromLogContext()
    .Enrich.WithMachineName()
    .Enrich.WithEnvironmentUserName()
    .Enrich.WithProcessId()
    .Enrich.WithThreadId()
    .WriteTo.Console()
    .WriteTo.File($@"{Constants.LogsDirectory}log-.txt", LogEventLevel.Information, rollingInterval: RollingInterval.Day)
    .WriteTo.File(new JsonFormatter(), $@"{Constants.LogsDirectory}log-.json", rollingInterval: RollingInterval.Day)
    .WriteTo.MSSqlServer(DatabaseAccess.ConnectionString(context), nameof(ProcessMessageLog), columnOptions: columnOptions)
    .WriteTo.Seq("http://localhost:8081")
    .CreateLogger();

В моем файле seq.json в каталоге D:\Logs\Seq я вижу следующее:

  "api": {
    "listenUris": [
       "http://localhost:8081"
    ],

Я также вижу файлы журналов, записываемые каждую минуту, но ни один из них не фиксирует события из веб-API или консольных приложений.

Когда я иду в localhost:8081, Я получаю "localhost refused to connect." сообщение.

Я подозреваю, что у меня неправильные номера портов, но я не знаю. Должны ли они быть разными или одинаковыми между 1) настройкой докера, 2) значением seq.json, 3) созданием регистратора?

1 ответ

Решение

Похоже, что контейнер Seq в Docker плохо работает с моим диском D: карты micro SD. Я просто переключился с этого на свой диск C:, и он отлично работает.

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