部署后ASP.NET Core Web API不会将日志发布到Seq

问题描述

我有一个使用ASP.NET Core 3.1开发的Web Api项目,并安装了Seq进行日志记录。在开发计算机上,我在Seq UI上收到日志。我还在Linux服务器(CentOS 7)上安装了Seq,docker和Nginx。一旦在docker容器中将Nginx部署到linux服务器(CentOS 7),Api运行Ok,并且在控制台上可以看到日志,但是没有日志记录到Seq UI。

我尝试了所有已知的配置,但无法使其正常工作。我尝试在Linux服务器上安装VS Code并在其上运行示例代码,该示例代码成功地将日志发布到了Seq UI上,所以我不知道为什么我在Docker容器中部署的api从未成功登录Seq UI。代码如下:

Startup.cs

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllers();
        services.AddLogging(loggingBuilder =>
        {
            loggingBuilder.AddSeq();
        });
    }

HomeController.cs

    private readonly ILogger<HomeController> _logger;
    public HomeController(ILogger<HomeController> logger)
    {
        _logger = logger;
    }

    public IActionResult Index()
    {
        _logger.Loginformation("Called Index action in Home Controller.");
        return View();
    }

这些是我运行docker inspect命令时详细信息的一部分

...

    "Name": "/seq","RestartCount": 0,"Driver": "overlay2","Platform": "linux","MountLabel": "","ProcessLabel": "","AppArmorProfile": "","ExecIDs": null,"HostConfig": {
        "Binds": [
            "/****/****/Documents/****/****/****/seq:/data:rw"
        ],"ContainerIDFile": "","LogConfig": {
            "Type": "json-file","Config": {}
        },"NetworkMode": "dryvadevices_default","PortBindings": {
            "5341/tcp": [
                {
                    "HostIp": "","HostPort": "5341"
                }
            ],"80/tcp": [
                {
                    "HostIp": "","HostPort": "9000"
                }
            ]
        },"RestartPolicy": {
            "Name": "unless-stopped","MaximumRetryCount": 0
        },

...

我很困惑,并且一直在努力使其工作几天。我不知道如何检查是否Nginx阻止了端口5341的发布,对此我表示怀疑。请让我感到沮丧的时候,我需要帮助。 谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)