c# - Postsharp 不登录跟踪级别
问题描述
我喜欢在跟踪级别记录一些 Postsharp 消息。不幸的是,此级别的日志不会打印任何输出。所有其他级别都在工作。与控制台或 NLog 后端或从其他类登录时的行为相同。
如何启用跟踪级别?
应用程序.xaml.cs:
[Log(AttributeExclude = true)]
public partial class App
{
private static readonly LogSource LogSource = LogSources.Default.ForCurrentType().WithLevels(LogLevel.Trace, LogLevel.Error);
protected override void OnStartup(StartupEventArgs e)
{
LoggingServices.DefaultBackend = new PostSharp.Patterns.Diagnostics.Backends.Console.ConsoleLoggingBackend();
LogSource.Debug.Write(Formatted("Debug")); // prints "Debug"
LogSource.Trace.Write(Formatted("Trace")); // prints nothing
LogSource.Default.Write(Formatted("Default")); // prints nothing
LogSource.Trace.IsEnabled // is false
..
GlobalAspect.cs
using PostSharp.Patterns.Diagnostics;
using PostSharp.Extensibility;
[assembly: Log(AttributePriority = 1, AttributeTargetMemberAttributes = MulticastAttributes.Protected | MulticastAttributes.Internal | MulticastAttributes.Public)]
[assembly: Log(AttributePriority = 2, AttributeExclude = true, AttributeTargetMembers = "get_*" )]
解决方案
LogLevel.Trace
是 PostSharp 诊断库中最低的日志记录级别。默认情况下,日志记录后端的详细程度设置为LogLevel.Debug
,结果会忽略所有跟踪消息。您可以自定义日志记录后端的详细程度,如下例所示:
LoggingServices.DefaultBackend.DefaultVerbosity.SetMinimalLevel( LogLevel.Trace );
推荐阅读
- ios - 当 ObservedObject 在其他类中发生更改时如何在 ContentView 中运行方法 [Swift 5 iOS 13.4]
- swift - Curl 命令可在 CLI 上运行,但 Alamofire 无法进行身份验证
- c++ - 手动设置 cin.fail()
- php - PHP intl NumberFormatter::SPELLOUT 的源代码在哪里?
- sql - SQL 过滤掉具有多个列条目的行
- angular - 服务的依赖注入不起作用
- python - 值的python字典具有列表映射
- java - 如何使用 mongodb java 驱动程序和 Wildfly 配置日志记录
- c - 使用 memcpy 复制结构的一部分
- google-compute-engine - gcloud 由于(SSLHandshakeError)而崩溃:[SSL:UNKNOWN_PROTOCOL]