我们已将ELMAH与ASP.NET MVC 3集成,作为记录应用程序错误的方法。但是,我们还没有坚持日志。为此,我们想在MySQL中存储ELMAH的日志条目,因为我们已经将此数据库服务器的实例用于其他目的。
我们如何配置ELMAH以便它使用MySQL持久保存日志?
答案 0 :(得分:11)
您可以安装NuGet包ELMAH on MySQL
PM>安装包elmah.mysql
你必须配置它。来自 Elmah.MySql.txt ,这是该软件包的一部分。
请注意,要完成ELMAH.MySql的安装,您必须执行以下操作:
答案 1 :(得分:0)
这就是我将elmah配置为写入MySQL的方法。在Visual Studio中......
这两个安装对web.config文件进行了一些更改,这些是要查找的相关部分:
<elmah>
<security allowRemoteAccess="false" />
<errorLog type="Elmah.MySqlErrorLog, Elmah" connectionStringName="elmah-mysql" />
</elmah>
这需要一个新的连接字符串...... elmah已经为我添加了模板,我只需要输入正确的凭据:
<connectionStrings>
<add name="DevDB" connectionString="Server=localhost; Database=NZ; Uid=myuserid; Pwd=mypwd" providerName="MySql.Data.MySqlClient"/>
<add name="elmah-mysql" connectionString="Server=localhost; Database=elmah; Uid=myuserid; Pwd=mypwd" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
如果您使用的是EntityFramework
,请确保EntityFramework提供程序正确无误<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
和DbProviderFactories是正确的
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
而这就是我必须做的才能让它运转起来。
注意:要注意的一件事是在上面的连接字符串中使用小写字符作为数据库名称,因为MySQL数据库名称是小写的...它最初对我有用大写然后它破了,我不得不改变它。