zoukankan      html  css  js  c++  java
  • 使用log4net将日志记入PostgreSql

    首先用下面的语句创建表

    CREATE TABLE Log
    (        
        Id SERIAL,        
        Date 
    timestamp NOT NULL,        
        Thread 
    varchar(255NOT NULL,        
        
    Level varchar(50NOT NULL,        
        Logger 
    varchar(255NOT NULL,        
        Message 
    varchar(4000NOT NULL,        
        Exception 
    varchar(2000NULL
    );

    然后的配置文件与 MS SQLServer 的大致一样,区别就在于,Postgresql 的连接字符串,以及参数表示。

    数据库连接类型:
    Npgsql.NpgsqlConnection, Npgsql, Version=0.7.0.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7
    我使用的是 PostgreSql 的 .NET 驱动 beta 5

    连接字符串:
    Server=localhost;Port=5432;User Id=PostgreUser;Password=password;Database=logdb;
    参数表示:
    PostgreSql的SQL语句中的参数使用 : 做前缀。
    Parameter中的参数名称不需要 : 。
    例如:
    INSERT INTO Log (Date,Thread,Level,Logger,Message,Exception) VALUES (:log_date, :thread, :log_level, :logger, :message, :exception)

    <param name="Parameter">
        <param name="ParameterName" value="log_date" />
        <param name="DbType" value="DateTime" />
        <param name="Layout" type="log4net.Layout.RawTimeStampLayout" />
    </param>

    剩下的操作就去其他的一致了。

    不过,目前依然还有一个问题:就是第一次启动日志功能时,第一条日志都无法保存到数据库中,例如:
    ILog log = LogManager.Exists("...");
    log.Info("第一条");
    log.Info("第二条");

    那么第一条的信息都保存不到数据库中。

    不知道这是什么原因,还需进一步跟踪。
  • 相关阅读:
    团队冲刺第五天
    团队冲刺第一天
    IOS开发(四):开关控件UISwitch
    IOS开发(七):UIActionSheet和UIAlertView
    IOS开发(五):分段控件UISegmentedControl
    [转]IOS开发(一):第一个有交互的APP
    [转]IOS开发(三):UIImageView、UISlider、UIStepper、UIButton
    IOS开发(八):系统声音服务
    [转]Tab Bars和Pickers
    [转]IOS开发(二):ImageView、TextField、键盘
  • 原文地址:https://www.cnblogs.com/iaxes/p/121480.html
Copyright © 2011-2022 走看看