Log4net登录开发人员机器,但在测试服务器中没有登录

Vin*_*oni 9 .net asp.net-mvc log4net

我正在使用log4net 1.2.11.因此,日志记录在开发人员计算机中工作,但是当我在测试服务器中发布时,它无法正常工作.远程调试,我看到日志在ILog变量中正确加载,但是当它调用log.Error()时,没有任何反应,没有日志文件,没有log4net异常.

任何想法?

Obs:我在asp.net mvc 3网站上使用log4net.

- 编辑

我把完全控制权交给每个人......没有任何改变,没有日志文件.

Cla*_*edi 8

启用log4net调试以获取有关该问题的更多信息.如果没有这个,log4net将无声地失败,并且很难对配置问题进行故障排除.

检查如何启用log4net内部调试?在log4net常见问题解答

如果您有权限问题(如Shyju指出),请考虑IIS 7.5的默认标识是否ApplicationPoolIdentity存在Network Service

您可以在此处获得有关如何为ApplicationPoolIdentity保护资源的说明.查看"保护资源"部分


Shy*_*yju 5

检查该文件夹是否具有足够的权限,以便ASP.NET将文件写入该文件夹.很可能这就是它在Dev机器中工作的原因

一些解决方法

在您的开发工具中删除日志文件和文件夹并将其作为新文件运行并查看它是否创建了日志文件.如果是,代码中没有任何改变.这应该是一个许可的事情.所以让我们仔细检查权限

正如Claudio Redi在回答中提到的,您还可以启用log4net的内部调试以获取更多信息.有关此链接中的更多详细信息,请查看" 如何启用log4net内部调试? "部分.http://logging.apache.org/log4net/release/faq.html

从他们的文件

为什么我不能从Web应用程序登录到FileAppender?

Web应用程序在名为ASPNET的Web服务器上作为特殊用户帐户运行.此帐户具有受限制的权限,可以保护Web服务器免受攻击.默认情况下,此帐户可能没有写入文件系统的权限.确保ASPNET帐户有权创建和写入选择用于记录的目录中的文件.