【发布时间】:2018-04-18 04:14:28
【问题描述】:
我想在 IIS 上启用文件日志记录以在 IIS 上本地解决问题。以下是我正在使用的代码。它在我在 Visual Studio 上运行并记录到文件时有效,但在部署到 IIS 时无效。文件夹有足够的权限来创建文件,我也创建了文件夹和文件。我在这里错过了什么?
Program.cs
var path = @"C:\workspace\Logs\Log-{Date}.txt";
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console(
outputTemplate:
"[{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}",
theme: AnsiConsoleTheme.Literate)
.WriteTo.File(path, fileSizeLimitBytes: 1_000_000,
rollOnFileSizeLimit: true,
shared: true,
flushToDiskInterval: TimeSpan.FromSeconds(1))
.CreateLogger();
启用 useSerialLog()
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureServices(services => services.AddAutofac())
.UseStartup<Startup>()
.UseSerilog()
.Build();
【问题讨论】:
-
我无法发现代码有任何问题 - 某种权限问题仍然是我的最佳猜测。启用
SelfLog并将其输出发送到其他地方(临时文本文件?)可能有助于发现原因:github.com/serilog/serilog/wiki/Debugging-and-Diagnostics