如何为mySQL配置log4net?

如何为mySQL配置log4net?,mysql,log4net,Mysql,Log4net,我试图使用log4net appender在mySQL数据库中记录事件,但我无法正确配置log4net文件 以下是log4net.config: <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender"> <bufferSize value="1"/> <lossy value="false"/> <connectionType value="MySql.Da

我试图使用log4net appender在mySQL数据库中记录事件,但我无法正确配置log4net文件

以下是log4net.config:

<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
  <bufferSize value="1"/>
  <lossy value="false"/>
  <connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
  <!--connectionString value="Server=my_server_ip_or_name;Database=my_db_name; Uid=my_user_name;Pwd=my_passwd;"/-->
  <connectionString value="server=my_server_ip_or_name;database=my_db_name; user=my_user_name;password=my_passwd;port=3306"/>
  <commandText value="INSERT INTO Log (dtLog,lbThread,lbLevel,lbLogger,lbMessage,lbException,lbContext) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception, @context)"/>
  <parameter>
    <parameterName value="@log_date"/>
    <dbType value="DateTime"/>
    <layout type="log4net.Layout.RawTimeStampLayout"/>
  </parameter>
  <parameter>
    <parameterName value="@thread"/>
    <dbType value="String"/>
    <size value="32"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%t"/>
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@log_level"/>
    <dbType value="String"/>
    <size value="10"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%p"/>
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@context"/>
    <dbType value="String"/>
    <size value="10"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%x"/>
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@logger"/>
    <dbType value="String"/>
    <size value="512"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%c"/>
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@message"/>
    <dbType value="String"/>
    <size value="4000"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%m"/>
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@exception"/>
    <dbType value="String"/>
    <size value="4000"/>
    <layout type="log4net.Layout.ExceptionLayout"/>
  </parameter>

</appender>
对应于以下配置行:

<add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />

log4net的调试记录以下错误:

iisexpress.exe错误:0:使用方法“mysql\u native\u password”对用户“my\u user\u name”的主机“my\u server\u ip\u或\u name”进行身份验证失败,消息为:用户“my\u user\u name”@“my\u local\u machine\u name”的访问被拒绝(使用密码:是)

log4net:错误[AdoNetAppender]错误代码:GenericFailure。无法打开数据库连接[server=my\u server\u ip\u或\u name;database=my\u db\u name;user=my\u user\u name;password=my\u passwd;port=3306]。连接字符串上下文[ConnectionString]。 MySql.Data.MySqlClient.MySqlException(0x80004005):使用方法“MySql\u native\u password”对用户“my\u usr\u name”进行主机“my\u server\u ip\u或\u name”的身份验证失败,消息为:用户“my\u user\u name”@“my\u local\u machine\u name”的访问被拒绝(使用密码:YES)-->MySql.Data.MySqlClient.MySqlException(0x80004005):用户“我的用户名”@“我的本地计算机名”的访问被拒绝(使用密码:是)

我不明白为什么log4net试图连接到我的本地计算机而不是我配置的服务器


知道我的配置有什么问题吗?

正如@TZHX所注意到的,我必须在远程IP为mySQL用户授予远程访问权限:

GRANT ALL ON my_db_name.* TO my_user_name@'my_remote_ip' IDENTIFIED BY 'my_passwd';
我还必须在machine.config文件中注释MySql站点地图配置:

<!--add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" /-->

正如@TZHX所注意到的,我必须在远程IP为mySQL用户授予远程访问权限:

GRANT ALL ON my_db_name.* TO my_user_name@'my_remote_ip' IDENTIFIED BY 'my_passwd';
我还必须在machine.config文件中注释MySql站点地图配置:

<!--add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" /-->


否决票能否解释原因,谢谢您的mysql用户是否有权从您尝试连接的ip地址进行连接?未来提示:明确说明您匿名了配置数据,特别是当您的问题与所述配置有关时。如果你不这样做,那么人们必须做出的第一个假设是,你直截了当地复制/粘贴了指南中的内容,根本不知道你需要更改任何内容。否决票能否解释他们的原因,感谢您的mysql用户是否有权从您尝试连接的ip地址进行连接?未来提示:明确说明您匿名了配置数据,特别是当您的问题与所述配置有关时。如果你不这样做,那么人们必须做的第一个假设是,你直接复制/粘贴了指南中的内容,根本不知道需要更改任何内容。