首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

100log4net+sqlite的winform例子

2013-08-04 
100求一个log4net+sqlite的winform例子在codeproject上找了一个http://www.codeproject.com/Articles/4039

100求一个log4net+sqlite的winform例子
在codeproject上找了一个http://www.codeproject.com/Articles/403936/log4Net-and-SQLite
那个是log4net+sqlite的web例子,可是我移植到winform上面以后,一直不起作用。

创建SQLite的SQL语句如下:
 


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




增加的< appender>节点配置如下:
 
<appender name="AdoNetAppender_SQLite" type="log4net.Appender.AdoNetAppender"> 
  <bufferSize value="100" /> 
  <connectionType value="System.Data.SQLite.SQLiteConnection, System.Data.SQLite, Version=1.0.66.0, Culture=neutral" /> 
  <!--SQLite连接字符串--> 
  <connectionString value="Data Source=c:\\log4net.db;Version=3;" /> 
  <commandText value="INSERT INTO Log (Date, Level, Logger,Source, Message) VALUES (@Date, @Level, @Logger, @Source, @Message)" /> 
  <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="%level" /> 
    </layout> 
  </parameter> 
  <parameter> 
    <parameterName value="@Logger" /> 
    <dbType value="String" /> 
    <layout type="log4net.Layout.PatternLayout"> 


      <conversionPattern value="%logger" /> 
    </layout> 
  </parameter> 
  <parameter> 
    <parameterName value="@Source" /> 
    <dbType value="String" /> 
    <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%file:%line" /> 
    </layout> 
  </parameter> 
  <parameter> 
    <parameterName value="@Message" /> 
    <dbType value="String" /> 
    <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%message" /> 
    </layout> 
  </parameter> 
</appender> 


[解决办法]
LogId Integer NOT NULL PRIMARY KEY AUTOINCREMENT
[解决办法]
一般的, log4net 的 web 项目, 会在 AssemblyInfo.cs 内有个初始化调用,
以 AssemblyAttribute 形式给出的.
迁移到 winform 后, 需要你手工初始化.

就是 config 一个 appender.
[解决办法]
你的主键没有设置自增长,先把那个改过来再试
[解决办法]
1、写个Test,断点调试或日志输出,捕获写日志到数据库操作的异常,分析之
2、检查System.Data.Sqlite.dll对应是32bit还是64bit版本的
3、检查 c:\\log4net.db 是否有写权限
4、<connectionString value="Data Source=c:\\log4net.db;Version=3;" />  是否有passwod

热点排行