【发布时间】:2021-10-11 21:37:58
【问题描述】:
我已将网站部署到 ubuntu 机器但无法让 serilog 写入文件
这是我所拥有的:
在Program.cs中(省略不必要的部分):
public static void Main(string[] args)
{
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{environment}.json", optional: true)
.AddEnvironmentVariables()
.Build();
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
还有:
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.UseUrls($"http://localhost:{port}")
.UseStartup<Startup>();
})
.UseSerilog();
在我的 appsetting.PreProduction.json 中:
"Serilog": {
"MinimumLevel": "Information",
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "/var/log/myapp/",
"rollingInterval": "Day"
}
}
]
},
这适用于我的本地计算机 Windows
{
"Name": "File",
"Args": {
"path": "c:\\myapp\\log.txt",
"rollingInterval": "Day"
}
},
我需要做任何额外的许可吗?
【问题讨论】:
-
"path": "/var/log/myapp/",似乎不对。您需要指定文件的完整路径,例如/var/log/myapp/myapp.log -
@abdusco 也尝试过,但没有成功
-
您是否尝试过启用 serilog 的自日志? github.com/serilog/serilog/wiki/Debugging-and-Diagnostics
-
我在 CreateLogger 之后添加了这一行,但不知道该怎么做,或者如何从那里继续
-
将它移到你设置 Serilog 的位置之前,然后检查控制台输出是否有错误。如果 Serilog 无法写入接收器,您应该会看到一些条目
标签: asp.net-core ubuntu serilog