坚持loginDocker容器重启

所以我有一个微服务在.NET Core下作为Docker容器运行,并在Azure上logging到Application Insights,因为它将从EventHub获取的大量数据写入SQL Server。

每过一段时间,我都会得到一个未处理的SqlException,它似乎在后台线程上抛出,这意味着我无法捕获并处理它,我也无法修复这个错误。

解决方法是将重新启动策略设置为始终,服务重新启动。 这很好,但现在我不能跟踪Application Insights中的这个exception。

我想,未处理的exception是由CLR写入stderr,所以它出现在Docker日志中有一些grep,但是有没有办法在启动时检查它,然后将其logging到Application Insights,这样我就可以在不login的情况下发现它Swarm集群和grep重启信息?

要坚持日志,

方法1

将docker日志目录挂载到主机上。

例:

docker run -name Container_1 -v / host_dir / logs:/ var / log / app docker_image:version

Docker容器会将日志写入/ var / log / app目录。现在,日志也将在Docker重启的同时保存在主机的/ host_dir / logs目录中。

方法2

在docker中configurationsyslog或fluentd等日志驱动。 您可以查看https://docs.docker.com/engine/admin/logging/overview/进行configuration。