2010-05-08 183 views
3

我有一个单独的Log4Net.config文件。我加log4net配置问题

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)] 

到的AssemblyInfo.cs

当我运行调试模式下的应用,lognet被记录。当我将应用程序发布到IIS时,lognet不会记录任何内容。

我有以下也:

BasicConfigurator.Configure(); // in a method 
private static readonly ILog _logger = LogManager.GetLogger(typeof(_Default)); // for the instance 

什么会是什么原因呢?

回答

6

可能是AppPool身份用户没有权限写入日志文件/目录(假设您使用的是文件appender)。

下面介绍如何检查应用程序池的用户帐户:

  • 开始 - >运行 - >“COMPMGMT.MSC”(或右键单击“我的电脑”,选择“管理”)
  • 导航到“服务和应用程序” - >“Internet信息服务(IIS)管理器”
  • 在“网站”下找到您的网站并右键单击 - >属性
  • 在虚拟目录选项卡上,记下“应用程序池“设定
  • 取消t他的对话框,并导航到IIS管理器中的“应用程序池”
  • 右键单击上面提到的应用程序池,选择“属性”,然后选择“标识”选项卡
  • 这显示运行该站点的用户帐户。
  • 现在,我的建议是检查您尝试写入日志的文件夹权限,并确保应用程序池用户具有对该文件夹的写入权限。

如果这不是问题,我建议你在开启log4net internal debugging

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
     <add key="log4net.Internal.Debug" value="true"/> 
    </appSettings> 
</configuration> 
+0

这是权限的问题。谢谢。 – DarthVader 2010-05-08 23:55:15

+0

安迪,请指明....你是什么意思“可能是AppPool身份用户没有权限写入日志文件/目录(假设你使用的是文件appender)”。我如何解决它 ? – Rodniko 2010-09-09 11:37:31

+0

Rodniko - 我更新了我的答案以显示如何检查这些权限。 – 2010-09-10 17:38:49