log4net配置问题

发布于 2024-08-31 15:31:10 字数 451 浏览 5 评论 0原文

我有一个单独的 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

这是什么原因?

I have a seperate Log4Net.config file. I added

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

to AssemblyInfo.cs

When I run the application with debug mode, lognet is logging. When i publish the application to IIS, lognet is not logging anything.

I have the followings also :

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

What would be the reason for this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南巷近海 2024-09-07 15:31:10

可能是 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>

It could be that the AppPool identity user does not have permissions to write to the log file/directory (assuming you're using a file appender).

Here's how to check the AppPool user account:

  • Start->Run->"compmgmt.msc" (or right-click "My Computer" and select "Manage")
  • Navigate to "Services and Applications"->"Internet Information Service (IIS) Manager"
  • Find your site under "Web Sites" and right click->Properties
  • On the Virtual Directory tab, make a note of the "Application pool" setting
  • Cancel this dialog, and navigate to "Application pools" in the IIS manager
  • Right click the app pool you noted above, select Properties, and select the Identity tab
  • This shows the user account that is running the site.
  • Now, my suggestion is to check the folder permissions where you are trying to write the log, and make sure the app pool user has write access to the folder.

If that's not the problem, I'd recommend turning on the log4net internal debugging:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="log4net.Internal.Debug" value="true"/>
    </appSettings>
</configuration>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文