我有一个记录的应用程序,当我将它部署到默认目录时,我没有得到任何基于文件的日志记录。很明显,原因是写入“c:\program files (x86)\blah”需要提升我的应用程序所没有的特权级别。所以我最终告诉用户“安装到”c:\blah“它会正常工作,它确实如此。但这似乎很垃圾。还有其他选择吗?
问问题
2151 次
2 回答
5
您可以将 NLog 配置为记录到不同的文件夹。NLog 有SpecialFolderLayoutRenderer允许你使用 .NET 的特殊文件夹。您应该能够使用 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 文件夹。
祝你好运!
于 2013-01-18T18:41:41.733 回答
3
对我来说,它是这样工作的:
fileName="${specialfolder:folder=ApplicationData}/newDMS ClientApplication/Logs/${shortdate}.log"
于 2013-07-17T12:06:10.083 回答