Docker日志中的.net输出

Stu*_*nar 5 asp.net docker iis-10

我正在尝试Console.WriteLine(..)在Docker日志中获取日志输出(),但利用率为零。

我试过了:

Console.WriteLine(..)

Trace.WriteLine(..)

冲洗控制台,冲洗轨迹。

调试时,我可以在VS输出窗口中看到这些输出,因此它们会放在一起。

我在Windows Container上,使用microsoft/aspnet:4.7.1-windowsservercore-1709net4.7

这些是我在容器启动时获得的日志

 docker logs -f exportapi
ERROR ( message:Cannot find requested collection element. )
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"
Run Code Online (Sandbox Code Playgroud)

nik*_*kov 1

您有许多好的横向选项,例如自包含/服务器包含的可执行文件(例如,Dotnet Core 使用默认情况下microsoft/dotnet:runtimeConsole.WriteLinedotnet new web脚手架进行代理)。零配置 STDOUT 日志记录从来都不是 IIS 上的常见方法,但这些现代选项将其作为最佳实践(日志记录应该是透明的支持服务)。

如果您想要或需要一系列三个程序/程序集来启动您的 Web 服务(ServiceMonitor、W3SVC,最后是您的程序集),那么您需要这样的东西: https: //blog.sixeyed.com/relay-iis-日志条目以在 docker/ 中读取它们

不幸的是,覆盖入口点以追踪比默认图像更多的日志是一种常见的黑客行为(不仅仅是在微软领域)。因此,就您而言,我相信您至少需要一个跟踪侦听器配置来发出Trace.WriteLine,然后使用上述方法来发出它:https ://learn.microsoft.com/en-us/dotnet/framework/debug-trace-配置文件/如何创建和初始化跟踪侦听器