Dot-Net

在程式碼中更改 ELMAH 數據庫

  • September 13, 2016

我有幾個擁有獨立 ELMAH 數據庫的網站。我想有一個單獨的網站來查看所有這些數據庫。

為此,我創建了一個新的 ASP.NET MVC 4 網站。我添加了 NuGet 包“Elmah.MVC”並將以下內容添加到 Web.config:

<connectionStrings>
   <add name="Elmah.Sql" connectionString="..." />
</connectionStrings>
<elmah>
   <errorLog type="Elmah.SqlErrorLog" connectionStringName="Elmah.Sql" />
</elmah>

這適用於單個數據庫。我也可以通過更改連接字元串來切換數據庫,但現在我希望能夠從程式碼切換數據庫。有沒有辦法做到這一點?

ELMAH 有一個用於自定義錯誤日誌的類。你只需要像這樣實現這個類

public class YourErrorLog : SqlErrorLog
{
   public override string ConnectionString
   {
       get
       {
           //return any connection string that you want
       }
   }
}

在此實現中,您可以讀取所需的任何連接字元串。最後,您可以通過以下方式告訴 ELMAH 知道該 ErrorLog

<elmah>
   <errorLog type="YourAssembly.YourErrorLog, YourAssembly" connectionStringName="elmah-sqlserver" />
</elmah>

您可以在此處查看詳細資訊

我還在這裡找到了你的一個例子

希望這有幫助。

引用自:https://stackoverflow.com/questions/16398576