如何解决部署后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 举报,一经查实,本站将立刻删除。