【发布时间】:2021-01-25 20:11:49
【问题描述】:
我正在使用 MvvmCross 7 和 WPF Core,我正在尝试使用 Serilog 作为记录器,但我必须遗漏一些东西。 我正在关注官方指南https://www.mvvmcross.com/documentation/fundamentals/logging,这是我的 setup.cs:
public Setup(Dispatcher uiThreadDispatcher, IMvxWpfViewPresenter presenter)
: base(uiThreadDispatcher, presenter)
{
}
protected override IMvxApplication CreateApp()
{
return (IMvxApplication)new ReHUB.Core.App();
}
protected override MvxLogProviderType GetDefaultLogProviderType()
{
return MvxLogProviderType.Serilog;
}
protected override IMvxLogProvider CreateLogProvider()
{
string path = Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "my_log.txt");
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.Enrich.FromLogContext()
.WriteTo.Logger(config => config
.MinimumLevel.Verbose()
.WriteTo.File(path))
.WriteTo.File(path,
rollingInterval: RollingInterval.Day,
outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss zzz} {myCustomVar} [{Level:u3}] {Message:lj}")
.CreateLogger();
return base.CreateLogProvider();
}
哪个运行没有错误。
我的第一个困惑是 setup.cs 还没有在我的项目中,所以我必须手动创建它,我的第二个困惑是如果我在其中打印它不会被打印,所以我不确定是否setup.cs 正在执行(我猜不是)。
然后我将它注入到我的视图模型的构造函数中
IMvxLog logger
并将其称为
Log.Logger.Error("Mandrone");
但它不会在我的 my_log.txt 中记录任何内容。
我错过了什么?我的第一个线索是 setup.cs 自 MvvmCross 7 以来发生了一些变化,但我在互联网上找不到答案。
【问题讨论】: