log4net配置问题

Dar*_*der 3 .net c# configuration logging log4net

我有一个单独的Log4Net.config文件.我补充道

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
Run Code Online (Sandbox Code Playgroud)

到AssemblyInfo.cs

当我使用调试模式运行应用程序时,lognet正在记录.当我将应用程序发布到IIS时,lognet不会记录任何内容.

我还有以下内容:

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

这是什么原因?

And*_*ite 6

可能是AppPool标识用户没有写入日志文件/目录的权限(假设您正在使用文件追加器).

以下是检查AppPool用户帐户的方法:

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

如果这不是问题,我建议打开log4net内部调试:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="log4net.Internal.Debug" value="true"/>
    </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)