C# 基于配置文件的动态日志记录

C# 基于配置文件的动态日志记录,c#,.net,aop,postsharp,C#,.net,Aop,Postsharp,我有一个要求,我必须在我的应用程序中添加一个功能, 使用基于配置文件的日志将添加到代码中。 例如,如果我的类名是abc.cs,用户将在配置文件中输入以下内容 <entry typeName = "mynamespace.abc"> <LineNumbers ="1,2,3,10, 12"> </entry> 现在,对于代码流中到达的行号1、2、3、10、12,将在日志文件中创建一个日志条目,其中提到“类型y中到达的行号x” 我们希望这种情况在运行时发生,

我有一个要求,我必须在我的应用程序中添加一个功能, 使用基于配置文件的日志将添加到代码中。 例如,如果我的类名是abc.cs,用户将在配置文件中输入以下内容

<entry typeName = "mynamespace.abc">
<LineNumbers ="1,2,3,10, 12">
</entry>

现在,对于代码流中到达的行号1、2、3、10、12,将在日志文件中创建一个日志条目,其中提到“类型y中到达的行号x”

我们希望这种情况在运行时发生,而不需要任何代码更改或dll更改, 当需要更多日志记录时,在配置文件中添加类型和行号

通过互联网,我可以发现AOP在这方面有所帮助,但我真的不确定哪种框架或方法可以帮助实现这一点

期待同样的指导方针。
我的应用程序使用c#和.net framework。

当需要这种日志记录时,您可以附加一个(远程)调试器,并配置操作断点,以便在命中某些行时进行日志记录

使用PDB阅读器可以获得重新查询的结果。 请参阅: 使用该工具,您可以按类型跟踪代码位置

CCI元数据API允许应用程序有效地分析或 修改.NET程序集、模块和调试(PDB)文件。CCI 元数据支持.NETSystem.Reflection和 System.Reflection.EmitAPI,但性能要好得多。它也 提供了在.NET和.NET中都不可用的附加功能 API


AOP框架,尤其是PostSharp,设计用于在严格定义的切入点(如方法入口、方法出口等)中注入代码(通知)。AOP不支持基于行号截取任意代码行。