C#特性应用-通过Log记录调用者信息

软件运行过程中,处理运行错误,Log的记录是不可或缺的。

在学习特性的过程中,发现了一个很方便的Log记录的方式。

语言环境C# 5.0以上。

System.Runtime.CompilerServices 命名空间下。

通过CallerLineNumber、CallerFilePath、CallerMemberName,特性可以获取调用者信息。

具体代码如下所示:

static void Main(string[] args)
{
   var p = new Program();
   p.Log();
   p.SomeProperty = 33;

   Action a = () => p.Log();
   a();

   Console.ReadLine();
}

private int someProperty;

public int SomeProperty
{

get { return someProperty; }

set
{
this.Log();
someProperty = value;
}
}


public void Log([CallerLineNumber]int line =-1,[CallerFilePath] string path =null,[CallerMemberName] string name = null)
{

Console.WriteLine((line<0)?"No Line": $"Line:{line}");
Console.WriteLine((path == null) ? "No File Path" : $"path:{path}");
Console.WriteLine((name == null) ? "No Member Name" : $"Name:{name}");
Console.WriteLine();
}

运行结果:

 

posted @   开心整一天  阅读(166)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示