A volte non è necessario scomodare SQL Server per fare un minimo di tracing/logging. A volte basta il tracing di ASP.NET. A volte vogliamo un file di testo o un file XML. Io ho avuto bisogno di configurare un appender per SQLite.
La documentazione ufficiale di log4net utilizza un appender configurato per un driver abbastanza datato (Finisar.SQLite.SQLiteConnection) che a me non andava.
Dopo varie vicissitudini, sono riuscito a configurare un appender (funzionante) con un assembly leggermente recente.
<appender name="ADONetAppender" type="log4net.Appender.AdoNetAppender">
<connectionType
value="System.Data.SQLite.SQLiteConnection, System.Data.SQLite" />
<connectionString value="Data Source=|DataDirectory|Trace.db3" />
<commandText
value="INSERT INTO Log (Date, Thread, Level, Logger, User, Message)
VALUES (@date, @thread, @level, @logger, @user, @message)" />
<commandType value="Text"/>
<bufferSize value="100" />
<parameter>
<parameterName value="@date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@level" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@user" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%X{user}" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%m" />
</layout>
</parameter>
</appender>
HTH,
a.