我很高兴在XP机器上使用log4net和我的WPF程序,并愉快地使用fileAppender FileAppender将日志消息写入c:\ log.txt.一切都好.但是,它不适用于Windows 7计算机.没有错误或任何东西,只是文件没有创建,更少记录.一个小小的研究表明它是Windows 7的文件权限问题(UAC),事实上,如果我以管理员身份运行可执行文件,它就可以工作.如果我只是点击它(即使我以管理员身份登录)它也不起作用,当我从Visual Studio启动时它不起作用.
问题:1.有人能指出一个例子,我要求允许写入一个且只有一个文件(C:\ log.txt).我已经看到一些示例,其中app.config配置为要求整个程序以管理员权限运行.这似乎有点矫枉过正,但我想它会起作用.2.有没有更好的方法将信息发送到日志文件?毕竟,也许C:在用户机器上不存在.我想我记得在Windows 7中使用"用户分区"的想法,但无论我做什么都必须在XP和Vista上工作.
谢谢你,戴夫
您不应该尝试直接写入根文件夹.在Windows 7下,您将要么以管理员身份运行,要么禁用UAC以使其正常工作,并且都不建议使用.
相反,您可以写入"应用程序数据"区域中的文件夹
如果您使用.config文件来配置日志,则可以使用类似的内容
<file value="${ALLUSERSPROFILE}\CompanyName\ProductName\Log.txt" />
Run Code Online (Sandbox Code Playgroud)
要么
<file value="${APPDATA}\CompanyName\ProductName\Log.txt" />
Run Code Online (Sandbox Code Playgroud)
取决于您是否希望日志文件特定于用户.
(显然,您将CompanyName和ProductName替换为您自己的详细信息).
这应该适用于Xp/Vista/W7.
归档时间: |
|
查看次数: |
3332 次 |
最近记录: |