我正在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中的Seq容器不能与我的micro SD卡D:驱动器一起正常使用。我只是从那切换到了我的C:驱动器,它可以正常工作。