【问题标题】:log4net configuration problemlog4net 配置问题
【发布时间】:2011-02-17 06:30:48
【问题描述】:

我有一个单独的 Log4Net.config 文件。我加了

[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

这是什么原因?

【问题讨论】:

    标签: c# .net configuration logging log4net


    【解决方案1】:

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

    查看 AppPool 用户帐户的方法如下:

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

    如果这不是问题,我建议打开log4net internal debugging

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

    【讨论】:

    • Andy,请指定....“可能是 AppPool 身份用户无权写入日志文件/目录(假设您使用的是文件)”是什么意思附加器)。”我该如何解决?
    • Rodniko - 我更新了我的答案以显示如何检查这些权限。
    猜你喜欢
    • 2011-04-09
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多