带有Docker的Serilog Seq Sink无法捕获事件

问题描述 投票:1回答:1

我正在Windows 10 Professional的Net Core 3.1上运行Web api和控制台应用程序。我有用于控制台,文本文件,json文件,mssql和seq的接收器。它们每个都记录所有事件,但seq不记录任何事件。

我使用以下命令安装了Docker:

docker run -d-重新启动,除非停止--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"
    ],

我还看到每分钟写入的日志文件,但是它们都没有捕获Web API或控制台应用程序的事件。

[转到localhost:8081时,会收到"localhost refused to connect."消息。

我怀疑端口号有误,但是我不知道。在1)docker设置,2)seq.json值,3)记录器创建之间它们应该是不同还是相同?

docker logging serilog seq sink
1个回答
0
投票

[似乎Docker中的Seq容器不能与我的micro SD卡D:驱动器一起正常使用。我只是从那切换到了我的C:驱动器,它可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.