NLog无法写入安装目录中的日志文件

时间:2013-01-17 13:59:55

标签: nlog

我有一个记录的应用程序,当我将其部署到默认目录时,我没有得到任何基于文件的日志记录。似乎很清楚,原因是写入“c:\ program files(x86)\ blah”需要提升我的应用程序所没有的privelege级别。所以我最终告诉用户“安装到”c:\ blah“并且它会正常工作,但它看起来很垃圾。任何替代方案?

2 个答案:

答案 0 :(得分:5)

您可以将NLog配置为记录到其他文件夹。 NLog有SpecialFolderLayoutRenderer,允许你使用.NET的special folders。您应该能够使用SpecialFolderLayoutRenderer指定日志文件名。也许这样的事情(我没试过这个):

<target name="file" xsi:type="File" layout="${longdate} | ${logger} | "${level} | ${message}" fileName="${specialfolder:folder=MyDocuments:dir=LogFiles:file=${shortdate}.log}" />

应该(如果可行)在用户的LogFiles文件夹中的Documents子文件夹中创建日志文件,其实际日志文件名对应于日期。我不知道,但我猜想NLog会在第一次记录任何内容时创建LogFiles文件夹。

祝你好运!

答案 1 :(得分:3)

对我而言,它的工作原理如下:

fileName="${specialfolder:folder=ApplicationData}/newDMS ClientApplication/Logs/${shortdate}.log"