症状:
1.使用log4net能成功的配置为写入日志到文件以及windows的事件记录
2.不能写入access或者MsSql在google上面搜索了很多关于log4net的文章,像摩诘Log4Net使用指南,apache的log4net专栏,按照里面的配置一步步来遇到了问题,很容易配置成可以写入日志到文件(FileAppender),windows事件日志(EventLogAppender)里面配置成Access或者MsSql就这么写不进去,我的配置文件如下  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
      <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\log\\appLog.mdb;Persist Security Info=False" />
      <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" />
      <parameter>
        <parameterName value="@log_date" />
        <dbType value="String" />
        <size value="255" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@thread" />
        <dbType value="String" />
        <size value="255" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%thread" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@log_level" />
        <dbType value="String" />
        <size value="50" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%level" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@logger" />
        <dbType value="String" />
        <size value="255" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%logger" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@message" />
        <dbType value="String" />
        <size value="255" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%message" />
        </layout>
      </parameter>
    </appender>-->    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>    <logger name="myLoger">      <level value="ALL"/>    </logger>    <root>
      <level value="ALL" />
      <appender-ref ref="AdoNetAppender_Access" />
    </root>  </log4net>我的access放在D盘的log目录下面,名称为appLog请大虾们帮忙解答

解决方案 »

  1.   

    参考
    http://www.cnblogs.com/agtaimaer/archive/2008/11/15/log4net.html
    http://www.cnblogs.com/liwei6797/archive/2007/04/27/729679.html
      

  2.   


    有没有异常啊?MSSQL试过吗?
      

  3.   


    MsSql刚刚搞通了,我觉得问题可能出在连接字符串上面
    但是我把D:\\log\\appLog.mdb换成D:\log\appLog.mdb也不行
      

  4.   


    没有异常,之前MsSql没插入数据进去,也没异常,好像log4net一般不会抛异常出来
      

  5.   

    能把源码发上来吗? 和你遇到的问题一样, 搜了很多资料都没办法。 我用MySql和MS Sql都不行。没有异常提示,崩溃了
      

  6.   

    回11楼:(我纯粹为了要积分...)
    你可以看看连接语句 尤其时注意version 和 PublicKeyToken
    <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    自己的VB在版本上会有自己的不同。我也是一个一个总webconfig中所有出现的version中找出来的。
    尤其要注意的是webconfig中
    <compilers>
    </compiler>
    之间的version.
      

  7.   

    回楼主:
    你确定你的
    <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\log\\appLog.mdb;Persist Security Info=False".....
    和你vb中右键你Server Explorer 中数据库连接 所示的 连接语句一样吗??
    你可以对VB中所示你的数据库连接右键查看属性。