PostSharp OnMethodBoundaryAspect缩进/填充
本文关键字:填充 缩进 OnMethodBoundaryAspect PostSharp | 更新日期: 2023-09-27 18:26:00
我一直在尝试为自己的方法边界特性添加一些填充。
StackTrace似乎没有帮助,我找不到一个模式来计算帧数基线,对于简单的场景,它大约是12。
[Serializable]
public class MyLogger : OnMethodBoundaryAspect
public override void OnEntry(MethodExecutionArgs args)
{
// ...
var ignoreFrameCount = ???; // in simple scenarios is ~12
var n = new StackTrace().FrameCount - ignoreFrameCount;
var padding = String.Empty.PadLeft(n*2);
// ...
我知道PostSharp做到了(日志中的缩进)
有没有办法做到这一点?
创建StackTrace通常非常缓慢,我不建议在日志记录期间使用它。
最简单的方法是声明:
[ThreadStatic]
private static int indentLevel;
然后,您所需要做的就是在OnEntry和OnExit建议中适当地增加和减少这个变量。