Приемник 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:, и он отлично работает.