星期日, 11月 20, 2011

Config the Elmah with Sqlite

之前Bibby都把elmah放在mssql裡面,可是遇到一個問題,如果專案沒有mssql的時候,就得改成xml的方式來做,改成xml來做其實也沒有啥不好,只是龜毛的我不喜歡xml那樣,一天一個xml的,看起來有點礙眼,之前閱讀到elmah的文件,有看過是支援sqlite的,所以乾脆以後都把elmah功能寫到sqlite裡面好了,這樣就不同的專案就可以用相同的解決方法處理了
不過在套sqlite的時候,其實不是這麼順利,官方文件(wiki)沒有寫的很清楚,花了一會才用成功,在這裡紀錄一下,以後大家參考就不用浪費時間再跟我做一樣的事情了,接下來就看圖說故事..

clip_image001

先在Reference上面按右鍵選擇NuGet

clip_image002

用搜尋的方式,先把System.Data.SQLite裝上

clip_image003

再裝上ELMAH,這樣元件都裝好了,NuGet真的超級方便..讚..

接下來我們開始設定web.config檔,我們先看一下官方的設定檔好了(這設定檔我的官方網站在鬼打牆,一直找不到)

<!--
Use to log errors to SQLite using ASP.NET 2.0.
Set value of connectionStringName attribute to
the name of the connection string settings to
use from the <connectionStrings> section.
<errorLog type="Elmah.SQLiteErrorLog, Elmah" connectionStringName="..." />
The format of the connection string should be as follows:
<connectionStrings>
<add name="..." connectionString="data source=[path to the database file]" />
</connectionStrings>
Replace the content of the brackets with a file name, for example:
data source=C:\Elmah.db
If the database file doesn't exist it is created automatically.
To specify a path relative to and below the application root,
start with the root operator (~) followed by a forward slash (/),
as it is common in ASP.NET applications. For example:
data source=~/App_Data/Error.db
-->

上面的設定檔很清楚,所以我們修改web.config就行了

  <connectionStrings>
  <add name="elmah" connectionString="data source=~/App_Data/elmah.db" />
</connectionStrings>
<elmah>
  <errorLog type="Elmah.SQLiteErrorLog, Elmah" connectionStringName="elmah" />
</elmah>

把上面這段加在web.config裡面,這樣就可以使用了,第一次的時候elmah會很貼心的幫你產生出sqlite.db的,這時你就可以用資料庫工具看到資料已經寫入了sqlite
clip_image001[4]

測試一下頁面也沒問題..

clip_image002[4]

這樣就完成我們的需求了,有問題再討論吧!

參考:
http://code.google.com/p/elmah/w/list

沒有留言: