.Net – 将日志从Web应用程序推送到运行Fluentd的Docker容器

我想将.net Web应用程序日志推送到在Docker容器上运行的stream畅图像。 为此,我安装了Docker Toolbox,并在Docker上运行了stream畅的图像。

首先,我尝试通过telnet发送文本到容器,容器收到这些消息并打印在命令行上。

为了从Web应用程序发送日志,我尝试了这里描述的方法(使用Nlog.Targets.Fluentd包) https://groups.google.com/d/msg/fluentd/bjf6V0E8oAQ/cTBlxXMbzkAJ 。 主机,端口,标签等连接细节与我在telnet中使用的相同,但无法将日志发送到容器。

Docker镜像库名称是“stream利的”,标签名称是“最新的”。 这是我如何在docker上运行stream畅的图像:

docker run -it ip 47001:24224 fluent:latest 

这就是我如何使用Nlog.Targets.Fluentd方法:

 using (var fluentdTarget = new NLog.Targets.Fluentd()) { fluentdTarget.Layout = new NLog.Layouts.SimpleLayout("${longdate}|${level}|${callsite}|${logger}|${message}"); fluentdTarget.Host = "192.168.99.100"; // IP of the docker fluentdTarget.Port = 47001; // mapped port number on host fluentdTarget.Tag = "fluent:latest"; config.AddTarget("fluentd", fluentdTarget); config.LoggingRules.Add(new NLog.Config.LoggingRule("demo", LogLevel.Debug, fluentdTarget)); var loggerFactory = new LogFactory(config); var logger = loggerFactory.GetLogger("demo"); logger.Info("Hello World!"); } 

我该如何解决这个问题? 有没有其他的方式来从Web应用程序发送日志到容器?