gpt4 book ai didi

c# - NLog如何写消息源

转载 作者:行者123 更新时间:2023-11-30 22:51:49 25 4
gpt4 key购买 nike

我想记录调用log方法的类信息。

Logger Logger = LogManager.GetCurrentClassLogger();
Logger.Info("Start");

我想在日志中看到执行上述代码的类的完整类名。

我在 NLog documentation 中看到其中提到了一个 source 选项,但不太清楚如何使用它以及它是否符合我的要求。

这是我希望看到的:

2019-11-11 15:07:19.6935 DefaultLogger MyProject.Program INFO Start

其中 MyProject.Main 是调用 Logger.Info 的类的完整类名。

编辑:

这是我配置记录器的方式:

var config = new LoggingConfiguration();
var allLogs = new NLog.Targets.FileTarget("allLogs");
allLogs.Layout = "${longdate} ${logger} ${uppercase:${level}} ${message}";
allLogs.FileName = basePath + "/${shortdate}.log";
config.LoggingRules.Add(new NLog.Config.LoggingRule("*", LogLevel.Trace, allLogs));
config.AddTarget(allLogs);

LogManager.Configuration = config;

最佳答案

callsite layout renderer似乎符合您的要求:

The call site (class name, method name and source information).

注意:“NetStandard 1.3 不支持”

语法:

${callsite:className=Boolean:fileName=Boolean:includeSourcePath=Boolean:methodName=Boolean}

供您引用:关于可用的布局渲染器有一个很好的概述 here .


顺便说一下:如果你使用 LogManager.GetCurrentClassLogger() , 然后是 ${logger}布局渲染器将渲染创建记录器的类的完全限定类名。

Gets the logger named after the currently-being-initialized class.

关于c# - NLog如何写消息源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58803221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com