使用 NLog 获取 ASP.NET 应用程序名称

Get ASP.NET application name with NLog

我想弄清楚在配置 NLog 时如何让应用程序名称包含在我的文件名中。这是一个例子:

<target name="trace" xsi:type="File" FileName="C:\MyApp_${date:format=yyyyMMdd}-trace.log" layout="${longdate} ${exception:format=tostring}" />

但是,我似乎无法弄清楚我需要使用什么变量来提取我的应用程序的名称。我希望它是这样的:

<target name="trace" xsi:type="File" FileName="C:${AppName}_${date:format=yyyyMMdd}-trace.log" layout="${longdate} ${exception:format=tostring}" />

我已经阅读了这里的文档,https://github.com/NLog/NLog/wiki/Layout-Renderers 但是其中 none 似乎能够获取我的应用程序名称,我发现最好的是 ${basedir} 但是这给出了我的完整路径。

有办法配置吗?

这样做的目的是让多个应用程序引用一个配置文件,但是它们都有自己的日志文件。

编辑:根据编辑后的描述,我了解到您喜欢在 IIS 中阅读 MVC 5 应用程序的网站名称。

您可以为此使用 ${iis-site-name} 渲染器。

您需要为此安装 NLog.Web NuGet 包。无需额外配置。