配置了下log4net,把debug和info的日志路径设为一样,以日期的形式记录。 
这样配置会引起错误,开始后console上显示文件被另一进程使用,可以问题是main()函数尚未执行,那么这个错误是从哪跑出来的?? 
  
ps:比main更早运行的有其他的函数和事件吗? 

解决方案 »

  1.   

    请贴出代码和log4net的配置还有异常信息。
      

  2.   

    应该是一些Initialize 的动作把。
      

  3.   

    一个console程序,随便什么内容都行,之后做的改动如下: 
    using log4net.Repository.Hierarchy;     //改动一,加上了这三行,using和attribute 
    using log4net;// 
    [assembly: log4net.Config.XmlConfigurator(Watch = true)] // 
    namespace Monitor 

        class Program 
        { 
             
            static void Main(string[] args) 
            { 
            } 
        } 
    }//改动二,加了个app.config,如下,注意fatal和error的文件地址是一样的,为了让它出错<?xml version="1.0"?>
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
      </configSections>
      <!--日志管理-->
      <log4net>
        <appender name="Fatal" type="log4net.Appender.RollingFileAppender">
          <param name="File" value=".\Error\"/>
          <param name="AppendToFile" value="true"/>
          <param name="MaxSizeRollBackups" value="10"/>
          <param name="StaticLogFileName" value="false"/>
          <param name="DatePattern" value="yyyy-MM-dd'.txt'"/>
          <param name="RollingStyle" value="Date"/>
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d  %-3L %-5p  - %m%n"/>
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="levelMin" value="FATAl"/>
            <param name="levelMax" value="FATAL"/>
            <param name="AcceptOnMatch" value="true"/>
          </filter>
        </appender>
        <appender name="Error" type="log4net.Appender.RollingFileAppender">
          <param name="File" value=".\Error\"/>
          <param name="AppendToFile" value="true"/>
          <param name="MaxSizeRollBackups" value="10"/>
          <param name="StaticLogFileName" value="false"/>
          <param name="DatePattern" value="yyyy-MM-dd'.txt'"/>
          <param name="RollingStyle" value="Date"/>
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d  %-3L %-5p  - %m%n"/>
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="levelMin" value="WARN"/>
            <param name="levelMax" value="ERROR"/>
            <param name="AcceptOnMatch" value="true"/>
          </filter>
        </appender>
    <root>
          <appender-ref ref="Fatal"/>
          <appender-ref ref="Error"/>
          <!--appender-ref ref="Debug"/-->
          <appender-ref ref="Info"/>    </root>
      </log4net>
    </configuration>把断点设在“  static void Main(string[] args)”上面,然后运行,发现在main函数执行前,console上就有了“log4net:error[RollingFileAppender] Unable to acquire lock on file "C:Users\**\Desktop\project……………….text" 正由另一进程使用,因此该进程无法访问该文件”。这个异常是预料之中的,但是为什么异常会出现在main函数之前呢,我还没运行自己的代码呀
      

  4.   

    [assembly: log4net.Config.XmlConfigurator(Watch = true)] // Here
      

  5.   

    配置系统初始化的时刻,
    XmlConfigurator 只是配置的一种方式,