4

ログを記録するアプリケーションがあり、それをデフォルト ディレクトリにデプロイすると、ファイル ベースのログが取得されません。その理由は、「c:\program files (x86)\blah」への書き込みには、アプリにはない特権レベルの昇格が必要であることは明らかです。そのため、ユーザーに「「c:\blah」にインストールすると正常に動作することを伝えることになります。しかし、それはごみのようです。代替手段はありますか?

4

2 に答える 2

5

別のフォルダーにログを記録するように NLog を構成できます。NLog には、.NET の特別なフォルダーを使用できるようにするSpecialFolderLayoutRendererがあります。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 に答える