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("第二条");

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

    不知道这是什么原因,还需进一步跟踪。
  • 相关阅读:
    Windows删除git本地记住的密码
    C++ fmt库的安装和测试
    仿照struct is_integral 实现struct not_int
    folly库net库udp小例子
    Java阻塞队列BlockingQueue
    正则表达式必知必会摘要
    正则表达式匹配IP地址
    SimpleDateFormat线程安全性测试与解决方案
    Java8 HashMap中哈希桶(table)数组的索引位置
    socket网络编程--基础应用篇
  • 原文地址:https://www.cnblogs.com/iaxes/p/121480.html
Copyright © 2011-2022 走看看