编程语言
首页 > 编程语言> > c#-Sitecore.Logging RollingFileAppender丢失[lockingModel]

c#-Sitecore.Logging RollingFileAppender丢失[lockingModel]

作者:互联网

我正在尝试解决Sitecore日志记录中在log4net中生成此消息的问题:

System.IO.IOException: The process cannot access the file ‘C:\Inetpub\wwwroot\Website\Data\logs\Custom.log’ because it is being used by another process.

我尝试增加MemoryMonitorHook阈值并清除了一些错误.我的下一步是使用以下方法更改锁定模型(默认为ExclusiveLock):

  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

但是现在log4net正在报告以下错误.似乎Sitecore.Logging.dll缺少某些属性?版本是1.2.0.30715

log4net:ERROR DOMConfigurator: Cannot find Property [lockingModel] to set object on [log4net.Appender.RollingFileAppender]

log4net配置是这样的:

   <appender name="CustomLogFileAppender" type="log4net.Appender.RollingFileAppender, Sitecore.Logging">
      <file value="$(dataFolder)\logs\Custom.log" />
      <appendToFile value="true" />      
      <staticLogFileName value="true" />
      <rollingStyle value="Date" />
      <datePattern value=".yyyyMMdd.'log'" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <dateTimeStrategy type="log4net.Appender.RollingFileAppender+UniversalDateTime" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%m%n" />
      </layout>
    </appender>

解决方法:

Sitecore使用较旧的log4net版本(看起来Sitecore 8仍在使用1.2.0).似乎在更高版本中添加了lockingModel属性.

如果您需要使用log4net的更高版本的功能,建议您看一下this blog post,它描述了如何使用不同于Sitecore.Logger.dll的Log4net版本.

标签:sitecore,log4net,asp-net,c
来源: https://codeday.me/bug/20191119/2040112.html