C# NLog-如何打印子类的属性值
我有一个dotnet核心控制台应用程序,它有许多相同基类的子类。我想给每个子类分配一个短名称/名字对象,比如publicstringmoniker=>A1,我想在子类或基类调用log时在日志中打印它 我不使用任何DI。记录器是单例类中的静态字段 还有几个其他类打印到日志中,但与基类无关C# NLog-如何打印子类的属性值,c#,.net,.net-core,nlog,C#,.net,.net Core,Nlog,我有一个dotnet核心控制台应用程序,它有许多相同基类的子类。我想给每个子类分配一个短名称/名字对象,比如publicstringmoniker=>A1,我想在子类或基类调用log时在日志中打印它 我不使用任何DI。记录器是单例类中的静态字段 还有几个其他类打印到日志中,但与基类无关 public static NLog.Logger logger; 我认为在日志布局配置中包含变量是不可能的,或者至少是很难的 我建议您定义一种方法来编写自定义日志: public string Moniker
public static NLog.Logger logger;
我认为在日志布局配置中包含变量是不可能的,或者至少是很难的 我建议您定义一种方法来编写自定义日志:
public string Moniker => "A1";
public void LogInfo(string message) => Logger.Info($"{Moniker} {message}");
我可以为基类重写记录器的名称 也许是这样的: 类基类 { 受保护的虚拟记录器日志{get{return{U Logger}} 专用静态记录器_Logger=LogManager.GetLoggerMyLogger; } 类:基类 { 受保护的覆盖记录器日志{get{return{U Logger}} 专用静态记录器_Logger=LogManager.GetLoggerMyLogger.A1; } 然后在布局中使用${logger}:
${level} ${logger} ${message}
另请参见:是的,好主意。谢谢{get{{u logger}}是无效的Csyntax@PavelAnikhouski谢谢你的注意。已经更新了代码示例和wiki