【问题标题】:log4net is not logging custom logs in EPiServerlog4net 没有在 EPiServer 中记录自定义日志
【发布时间】:2012-09-25 23:01:31
【问题描述】:

我在 EPiServer 中遇到 log4net 问题。它正在记录 EPiServer 的东西,NHibernate 的东西,但不是我的自定义日志。尝试显式配置记录器以记录我的命名空间中的所有内容:

<logger name="My.Website.Business">
    <level value="All" />
</logger>

我在我的自定义类中定义记录器,如下所示:

ILog log = LogManager.GetLogger(typeof(MyClass));

然后这样称呼它:

log.Error("Some error");

我还启用了 log4net 日志记录,以查看启动时发生的情况,但没有错误或奇怪的行为。它甚至创建在配置中定义的记录器。我还尝试为我的记录器定义其他附加程序,但它只是创建空文件并且不记录任何内容。

【问题讨论】:

    标签: c# log4net episerver


    【解决方案1】:

    episerver 日志记录中存在一个古老的错误:如果您在 global.asax 中声明了一个静态(类级别)log4net 日志对象,那么您的自定义日志记录将不起作用,只有 episerver 内部日志记录。

    如果您需要在 global.asax 中记录内容,请在方法中声明记录器。在其他类中,您可以像往常一样静态声明它。

    【讨论】:

    • 感谢您的回答,但在我的情况下,log4net 根本没有在 global.asax 中使用。全局 asax 继承自 EpiServer.Global,因此也没有可以使用 log4net 的基类。
    【解决方案2】:

    log4net 不起作用的原因是 log4net 的不同版本。我的应用程序引用了 log4net 1.2.11 (2.0.0),但 EPiServer 使用 1.2.10。 我们正在使用 NuGet 来安装/更新软件包,并且有人将 log4net 更新到了较新的版本。 因此请注意为 EPiServer 和应用程序使用相同的 log4net 版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-23
      相关资源
      最近更新 更多