您的位置:首页 > 数据库

使用log4net将日志记入PostgreSql

2005-03-18 23:39 489 查看
首先用下面的语句创建表

CREATE TABLE Log
(
Id SERIAL,
Date timestamp NOT NULL,
Thread varchar(255) NOT NULL,
Level varchar(50) NOT NULL,
Logger varchar(255) NOT NULL,
Message varchar(4000) NOT NULL,
Exception varchar(2000) NULL
);
然后的配置文件与 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("第二条");

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

不知道这是什么原因,还需进一步跟踪。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: