Docker日志中的.net输出

时间:2018-02-14 16:50:33

标签: asp.net docker iis-10

我试图在我的Docker日志中获取日志输出(Console.WriteLine(..)),但我无法使用。

我试过了:

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"

1 个答案:

答案 0 :(得分:1)

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

如果您想要或需要三个程序/程序集链来启动您的Web服务(ServiceMonitor,W3SVC,最后是您的程序集),那么您需要这样的内容:https://blog.sixeyed.com/relay-iis-log-entries-to-read-them-in-docker/

不幸的是,覆盖入口点以拖拽比默认情况下图像更多的日志是一个常见的黑客攻击(不仅仅是在微软的土地上)。因此,在您的情况下,我相信您至少需要一个跟踪侦听器配置来发出Trace.WriteLine,然后上面的方法来发出它:https://docs.microsoft.com/en-us/dotnet/framework/debug-trace-profile/how-to-create-and-initialize-trace-listeners