serilog sinks xamarin 标签在日志中不可见

serilog sinks xamarin tag not visible in log

我正在按照说明使用 serilog/serilog-sinks-xamarin here

在 .Android 项目中,我添加了以下代码:

    Log.Logger = new LoggerConfiguration().WriteTo.AndroidLog().Enrich.WithProperty("Tag", "CustomTag").CreateLogger();

并从便携设备调用它 class:

Log.Information("App is Starting");

我可以在设备日志中看到这一行,但是标签是空白的: missing tag

Enrich.WithProperty 必须设置为 Constants.SourceContextPropertyName 其中 Serilog 是值的常量字符串:SourceContext.

在你的 LoggerConfiguration 中使用 "SourceContext":

Log.Logger = new LoggerConfiguration().WriteTo.AndroidLog().Enrich.WithProperty("SourceContext", "CustomTag").CreateLogger();

serilog-sinks-xamarin 中,日志 TAG 通过以下方式分配:

var tag = logEvent.Properties.Where(x => x.Key == Constants.SourceContextPropertyName).Select(x => x.Value.ToString("l", null)).FirstOrDefault() ?? "";

回复:https://github.com/serilog/serilog-sinks-xamarin/blob/dec633b488a5c7dd3f3c9a017b972eaf101a177c/src/Serilog.Sinks.Xamarin.Droid/Sinks/Xamarin/AndroidLogSink.cs#L54

回复:https://github.com/serilog/serilog/blob/32e0c9578db720add74720bceb62bd46967694c4/src/Serilog/Core/Constants.cs#L27