【发布时间】:2020-01-11 04:24:58
【问题描述】:
我正在使用 PostSharp 6.4.5。我需要为现有项目添加方法级别跟踪。我想记录方法何时输入和退出以及参数类型和值。我只能重建项目/解决方案,不能对代码进行任何更改。我遇到了一种通过使用 XML 添加方面来实现此目的的方法。
https://doc.postsharp.net/xml-multicasting
https://doc.postsharp.net/configuration-system
https://doc.postsharp.net/logging-customizing
使用这种方法,并遵循 PostSharp 的其他一些配置,我创建了一个 postsharp.config,如下所示。
<Project xmlns="http://schemas.postsharp.org/1.0/configuration">
<Logging xmlns="clr-namespace:PostSharp.Patterns.Diagnostics;assembly:PostSharp.Patterns.Diagnostics">
<Profiles>
<LoggingProfile Name="detailed" IncludeSourceLineInfo="True" IncludeExecutionTime="True" IncludeAwaitedTask="True">
<DefaultOptions>
<LoggingOptions IncludeParameterType="True" IncludeThisValue="True" Level="Trace"/>
</DefaultOptions>
</LoggingProfile>
</Profiles>
</Logging>
</Project>
我还在 csproj 所在的同一目录中创建了一个 psproj 文件。以下是 psproj 文件的内容。
<Project xmlns="http://schemas.postsharp.org/1.0/configuration">
<Property Name="LoggingBackend" Value="console" />
<Using File=" absolute path to viewer dll \PostSharp.Patterns.Diagnostics.Weaver.dll"/>
<Multicast>
<LogAttribute xmlns="clr-namespace:PostSharp.Patterns.Diagnostics;assembly:PostSharp.Patterns.Diagnostics" ProfileName="Default" AttributeTargetTypes="Mynamepace.*" />
</Multicast>
</Project>
然后我重建项目并运行应用程序,但我看不到任何跟踪信息。 如果我遗漏了什么,请告诉我。
【问题讨论】:
-
请尝试按照此文档页面上的步骤操作:doc.postsharp.net/add-logging。您可以跳过第 1 步,因为您已经在使用 XML 多播而不是属性。