【发布时间】:2022-06-25 07:56:35
【问题描述】:
我有一个非常简单的 .NET MAUI 应用程序(不是 Blazor 应用程序)。我已经安装了 Seriolog 和 Serilog.Extensions.Logging(所以我可以使用 AppCenter)。我的启动代码中有以下内容来初始化 Serilog
public static MauiApp CreateMauiApp()
{
// set up logging
var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
path = Path.Combine(path, "debugcode.txt");
Log.Logger = new LoggerConfiguration()
//.MinimumLevel.Debug()
.WriteTo.File(path)
.WriteTo.AppCenterCrashes(restrictedToMinimumLevel: LogEventLevel.Information)
.WriteTo.Console()
.CreateLogger();
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
})
.Logging.AddSerilog(Log.Logger);
return builder.Build();
}
这编译没有问题。我已在 main.xaml.cs 中添加了用于记录的代码(该代码只是 VisualStudio 附带的默认 .NET MAUI 测试应用程序)。最小调试行被注释掉了,但是不注释掉也没关系。
protected override void OnDisappearing()
{
base.OnDisappearing();
Log.CloseAndFlush();
}
void OnCounterClicked(object sender, EventArgs e)
{
count++;
var nums = $"Current count: {count}";
CounterLabel.Text = nums;
Log.Debug($"***** Current count: {nums}");
SemanticScreenReader.Announce(CounterLabel.Text);
}
我已尝试更改调试级别,但无论如何,控制台中都没有显示任何调试信息。
【问题讨论】:
-
我认为对于移动应用程序,您需要一个额外的 nuget,例如
Serilog.Sinks.Xamarin。另一种方法是编写自己的 Sink 并将所有内容写入System.Console.WriteLine