• 手把手教你,C#.Net如何用Log4net把错误日志写入到SQLite数据库中


        在项目中,我们往往会有把错误日志记录下来的习惯,这样有利于当网站发布后,能第一时间找到错误的所在地,以及错误的原因,以便于我们第一时间纠错。往往我们会把错误日志直接写到txt文本中,虽然操作简单,但是却不利于后期的维护。所以我们常常还会把错误日志记录在数据库中,而Log4net操作数据库的性能相对较高,所以衍生出这篇文章。废话不多讲,开始教大家如何去配置。

    一、首先需要准备好Log4net和SQLite的DLL文件

              Log4net的下载连接:http://logging.apache.org/log4net/download_log4net.cgi

              SQLite的下载连接:http://download.csdn.net/download/jailbreak02/3849378  (这是CSDN的资源感觉还不错,并且下载不需要积分)   当然你到官网下载

              SQLite可视化工具破解版SQLiteManage:http://download.csdn.net/download/hhkun0120/6448773  

       

    二、配置

    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
    );
    //这边是创建SQlite日志表的语句

      

    <configuration>
    <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> <bufferSize value="100" /> <connectionType value="Finisar.SQLite.SQLiteConnection, SQLite.NET, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> <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)" /> <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="@Message" /> <dbType value="String" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message" /> </layout> </parameter> </appender> <root> <level value="all" /> <appender-ref ref="AdoNetAppender" /> </root> </log4net>

    </configuration>

      

    注意点:<connectionType value="Finisar.SQLite.SQLiteConnection, SQLite.NET, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />       这句话的Version版本好必须与你下载的SQLite.dll文件的版本号一致,具体版本好可以右击这个DLL文件的属性查看

    三、客户端的代码

                //读取Web.Config配置
                XmlConfigurator.Configure();  //这句话是需要加的
                //记录入口
                ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
                log.Error("调用Log()错误");

      接下来就可以愉快的记录日志了!

    作者: LiuHuaTao( LiuHuaTao's Blog on 博客园) 
    出处:http://www.cnblogs.com/Lhuatao/ 
    作品由 LiuHuaTao 创作,采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 欢迎转载,但任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言

  • 相关阅读:
    [POI2007]山峰和山谷Grz
    [POI2007]驾驶考试egz
    [POI2007]立方体大作战tet
    BZOJ1085 [SCOI2005]骑士精神
    BZOJ1975 [Sdoi2010]魔法猪学院
    codeforces754D Fedor and coupons
    UOJ79 一般图最大匹配
    BZOJ3944 Sum
    BZOJ3434 [Wc2014]时空穿梭
    UOJ58 【WC2013】糖果公园
  • 原文地址:https://www.cnblogs.com/Lhuatao/p/4431023.html
Copyright © 2020-2023  润新知