2016-02-19 19 views
2

我想知道如何在配置NLog时让应用程序名称包含在我的文件名中。这里有一个例子:使用NLog获取ASP.NET应用程序名称

<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但他们都不是能得到我的应用程序的名称,我发现最好的是${basedir}但给我的完整路径。

有没有办法配置这个?

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

+0

这是什么类型的应用程序? Windows服务? – Julian

+0

@Julian它是一个.NET MVC5网站。 – Bojan

+0

所以你需要IIS中的应用程序名称?或网站名称? – Julian

回答

4

编辑:从编辑的描述我知道你喜欢阅读IIS中的网站名称为MVC 5应用程序。

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

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

+0

如果这是一个控制台应用程序,我会不得不使用不同的标签?或者就我而言,它看起来可能最终成为一种混合,是否有一种常见的可以做到这一点? – Bojan

+0

使用控制台应用程序,可以使用'$ {processname}'来查找(在NLog软件包中) – Julian

相关问题