我想将.net Web应用程序日志推送到Docker容器上运行的流畅图像。为此,我安装了Docker Toolbox,并在Docker上运行了流畅的图像。
首先,我尝试通过telnet向容器发送文本,容器收到这些消息并在命令行上打印。
为了从Web应用程序发送日志,我尝试了此处描述的方法(使用Nlog.Targets.Fluentd包)https://groups.google.com/d/msg/fluentd/bjf6V0E8oAQ/cTBlxXMbzkAJ。 主机,端口,标签等连接细节与我在telnet中使用的相同,但我无法将日志发送到容器。
Docker图像存储库名称是"流畅的"和标签名称是"最新"。这就是我在docker上运行流畅图像的方式:
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应用程序向容器发送日志?