问题描述
我有一个使用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 (将#修改为@)