Csharp/C#教程:log4net日志文件在哪里?分享


log4net日志文件在哪里?

我有一个Windows窗体应用程序,它使用log4net写入日志文件。 app.config文件中的日志文件路径定义为:

. 

我有一个msi安装项目,它安装了上面的应用程序。 我在开发机器上安装应用程序,运行已安装的应用程序,并按预期将日志文件写入目录InstallDirectory / Logs /。 开发机器具有Win XP SP3,具有所有读写权限。

但是,当我在具有Windows 7并且我不确定权限的测试机器上安装相同内容时,没有“Logs”目录并且没有日志文件。

在这两种情况下,InstallDirectory都是C: Program Files Dir1 Dir2。

当我试图找出文件的位置时,在测试机器上添加:

 log4net.Appender.FileAppender rootAppender = (log4net.Appender.FileAppender)((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root.Appenders[0]; string filename = rootAppender.File; MessageBox.Show(filename); 

对于代码,有人可以请一些亮点。

正如其他人所说,不要以管理员身份运行来解决这个问题。 写入您有权访问的文件夹/文件。

您可以在配置中展开环境变量以获取特殊文件夹:

https://web.archive.org/web/20121226213809/https://www.l4ndash.com/Log4NetMailArchive/tabid/70/forumid/1/postid/16299/view/topic/Default.aspx

(或者,正如Jon Skeet在这个问题的删除post中所推荐的那样,这篇文章更具通用性: 我应该在哪里编写程序数据而不是程序文件? )

尝试:

 ${LocalAppData}/MyProgram/Logs/Filename 

要不就:

 ${AppData}/MyProgram/Logs/Filename 

至于选择这两个中的哪一个 – 我不确定“漫游”是什么,所以我不知道为什么你更喜欢AppDataLocalAppData 。 可能值得一个不同的问题:)

这是一个权限问题。 在Windows 7标准中,用户无法写入Program Files目录。 因此,如果您没有以管理员身份运行应用程序,则Log4Net无法创建此子目录。 在安装应用程序时,您必须向任何人授予对Logs/LogFileName目录的写入权限,或者将日志文件放在相应的c:usersusernameApplication DataAppName文件夹中。

在Windows7上,您应该写入C:Users文件夹。 您可以在此处创建installlog文件夹。

上述就是C#学习教程:log4net日志文件在哪里?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1007369.html

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐