我在EPiServer中遇到log4net问题。它记录了EPiServer的东西,NHibernate的东西,但不是我的自定义日志。试图显式配置记录器以记录我的命名空间中的所有内容:
<logger name="My.Website.Business">
<level value="All" />
</logger>
我正在我的自定义类中定义记录器,如下所示:
ILog log = LogManager.GetLogger(typeof(MyClass));
并称之为:
log.Error("Some error");
我还启用了log4net日志记录,看看启动时会发生什么,但没有错误或奇怪的行为。它甚至创建了在config中定义的记录器。我还尝试为我的记录器定义其他appender,但它只是创建空文件而不记录任何内容。
答案 0 :(得分:2)
episerver日志记录中存在一个历史悠久的错误:如果您在global.asax中声明了一个静态(类级别)log4net日志对象,则您的自定义日志记录都不起作用,只有episerver内部日志记录。
如果需要在global.asax中记录内容,请在方法内声明记录器。在其他类中,您可以像往常一样静态声明它。
答案 1 :(得分:0)
log4net无法正常工作的原因是log4net的不同版本。我的应用程序引用了log4net 1.2.11(2.0.0),但EPiServer与1.2.10一起使用。 我们正在使用NuGet来安装/更新软件包,有人将log4net更新到更新的版本。 因此请注意为EPiServer和应用程序使用相同的log4net版本。