我有一个单独的 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
这会是什么原因呢?
可能是 AppPool 身份用户没有写入日志文件/目录的权限(假设您正在使用文件附加程序)。
以下是检查 AppPool 用户帐户的方法:
- 开始->运行->“compmgmt.msc”(或右键单击“我的电脑”并选择“管理”)
- 导航到“服务和应用程序”->“Internet 信息服务 (IIS) 管理器”
- 在“网站”下找到您的网站,然后右键单击->属性
- 在“虚拟目录”选项卡上,记下“应用程序池”设置
- 取消此对话框,然后导航到 IIS 管理器中的“应用程序池”
- 右键单击上面提到的应用程序池,选择“属性”,然后选择“身份”选项卡
- 这显示了正在运行该站点的用户帐户。
- 现在,我的建议是检查您尝试写入日志的文件夹权限,并确保应用程序池用户具有该文件夹的写入权限。
如果这不是问题,我建议打开log4net内部调试 http://logging.apache.org/log4net/release/faq.html:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
</configuration>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)