Docker 的 Serilog Seq Sink 未捕获事件
Serilog Seq Sink with Docker is not capturing events
我是 运行 api 网络 api 和 Windows 10 Professional 上的 Net Core 3.1 控制台应用程序。我有用于控制台、文本文件、json 文件、mssql 和 seq 的接收器。它们各自记录所有事件,除了 seq 不记录任何事件。
我使用以下命令安装了 Docker:
docker run -d --restart unless-stopped --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();
我在 D:\Logs\Seq 目录中的 seq.json 文件中看到以下内容:
"api": {
"listenUris": [
"http://localhost:8081"
],
我还看到每分钟写入的日志文件,但其中 none 通过 Web api 或控制台应用程序捕获事件。
当我转到 localhost:8081
时,我收到一条 "localhost refused to connect."
消息。
我怀疑我的端口号有误,但我不知道。它们在 1) docker 设置、2) seq.json 值、3) 记录器创建之间应该不同还是相同?
Docker 中的 Seq 容器似乎无法与我的 micro SD 卡 D: 驱动器兼容。我只是从那个切换到我的 C: 驱动器,它工作正常。
我是 运行 api 网络 api 和 Windows 10 Professional 上的 Net Core 3.1 控制台应用程序。我有用于控制台、文本文件、json 文件、mssql 和 seq 的接收器。它们各自记录所有事件,除了 seq 不记录任何事件。
我使用以下命令安装了 Docker:
docker run -d --restart unless-stopped --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();
我在 D:\Logs\Seq 目录中的 seq.json 文件中看到以下内容:
"api": {
"listenUris": [
"http://localhost:8081"
],
我还看到每分钟写入的日志文件,但其中 none 通过 Web api 或控制台应用程序捕获事件。
当我转到 localhost:8081
时,我收到一条 "localhost refused to connect."
消息。
我怀疑我的端口号有误,但我不知道。它们在 1) docker 设置、2) seq.json 值、3) 记录器创建之间应该不同还是相同?
Docker 中的 Seq 容器似乎无法与我的 micro SD 卡 D: 驱动器兼容。我只是从那个切换到我的 C: 驱动器,它工作正常。