Other people might find this useful...

This was tested against v0.21 of the SQLite .NET provider:

 http://sourceforge.net/projects/adodotnetsqlite

SQLite doesn't have strongly-typed columns or field lengths but its
recommended you still include this information for readability:

CREATE TABLE Log (
        LogId           INTEGER PRIMARY KEY,
        Date            DATETIME NOT NULL,
        Level           VARCHAR(50) NOT NULL,
        Logger          VARCHAR(255) NOT NULL,
        Message         TEXT DEFAULT NULL       
);

<appender name="ADONetAppender_SQLite"
type="log4net.Appender.ADONetAppender">
 <connectionType value="Finisar.SQLite.SQLiteConnection, SQLite.NET,
Version=0.21.1869.3794, Culture=neutral,
PublicKeyToken=c273bd375e695f9c" />
 <connectionString value="Data
Source=c:\\\\inetpub\\\\wwwroot\\\\logs\\\\log4net.db;Version=3;" />
 <commandText value="INSERT INTO Log (Date, Level, Logger, Message)
VALUES (@Date, @Level, @Logger, @Message)" />
 <bufferSize value="1" />
 <parameter>
  <parameterName value="@Date" />
  <dbType value="DateTime" />
  <layout type="log4net.Layout.RawTimeStampLayout" />
 </parameter>
 <parameter>
  <parameterName value="@Level" />
  <dbType value="String" />
  <layout type="log4net.Layout.PatternLayout">
   <conversionPattern value="%p" />
  </layout>
 </parameter>
 <parameter>
  <parameterName value="@Logger" />
  <dbType value="String" />
  <layout type="log4net.Layout.PatternLayout">
   <conversionPattern value="%c" />
  </layout>
 </parameter>
 <parameter>
  <parameterName value="@Message" />
  <dbType value="String" />
  <layout type="log4net.Layout.PatternLayout">
   <conversionPattern value="%m" />
  </layout>
 </parameter>
</appender>

Make sure you use four slashes in the connection string. log4net
translates those into two slashes which SQLite requires for its
connection string.

- Ron

Reply via email to