相关疑难解决方法(0)

间歇性log4net RollingFileAppender锁定文件问题

我们在开发和生产机器上看到一个间歇性问题,我们的日志文件没有被记录.

使用Visual Studio在开发和调试中运行时,我们在VS输出窗口中收到以下log4net错误消息:

log4net:ERROR [RollingFileAppender] Unable to acquire lock on file C:\folder\file.log.
Run Code Online (Sandbox Code Playgroud)

该进程无法访问文件"C:\ folder\file.log",因为它正由另一个进程使用.

log4net:ERROR XmlConfigurator: Failed to find configuration section 'log4net' in the application's .config file.
Check your .config file for the <log4net> and <configSections> elements.
Run Code Online (Sandbox Code Playgroud)

配置部分应如下所示:

<section
  name="log4net"
  type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
Run Code Online (Sandbox Code Playgroud)

我们当前解决此问题的方法是重命名最后一个日志文件.我们当然希望这会失败(由于前面提到的文件锁定),但通常不会.由于aspnet_wp.exe进程的锁定,重命名一次或两次失败.

我们的log4net配置部分如下所示:

<log4net>
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="C:\folder\file.log"/>
    <appendToFile value="true" />
    <datePattern value="yyyyMMdd" />
    <rollingStyle value="Date" />
    <maximumFileSize value="10MB" />
    <maxSizeRollBackups value="100" />
    <layout type="log4net.Layout.PatternLayout">
      <header value="[Header]&#xA;"/>
      <footer value="[Footer]&#xA;"/>
      <conversionPattern value="%date %-5level %logger ${COMPUTERNAME} %property{UserHostAddress} [%property{SessionID}] …
Run Code Online (Sandbox Code Playgroud)

log4net locking rollingfileappender

110
推荐指数
3
解决办法
5万
查看次数

为每个appender创建不同的log4net.ILog实例

我正在使用log4net来记录项目.

我想登录3个不同的文件:请求,响应和错误.

<log4net debug="true">
    <!--To turn off an appender, simply set it's threshold value to "OFF"-->
    <appender type="log4net.Appender.RollingFileAppender" name="RequestAppender">
        <file value="requests.txt" />
        <threshold value="INFO" />
        <appendToFile value="true" />
        <rollingStyle value="Size" />
        <maxSizeRollBackups value="10" />
        <maximumFileSize value="10MB" />
        <staticLogFileName value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
        </layout>
    </appender>

    <appender type="log4net.Appender.RollingFileAppender" name="ResponseAppender">
        <file value="responses.txt" />
        <threshold value="INFO" />
        <appendToFile value="true" />
        <rollingStyle value="Size" />
        <maxSizeRollBackups value="10" />
        <maximumFileSize value="10MB" />
        <staticLogFileName value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net log4net appender

5
推荐指数
1
解决办法
6885
查看次数

标签 统计

log4net ×2

.net ×1

appender ×1

asp.net ×1

c# ×1

locking ×1

rollingfileappender ×1