log4net输出到PostgreSql
来源:互联网 发布:python dll 编辑:程序博客网 时间:2024/05/21 12:50
PgSQL越来越强大了。小项目输出log到sqlite是挺好的,大东西尤其是要长期运行的程序还是输出到PostgreSQL比较,也更适用于寄宿在Windows Service这种将当前目录视为System32的场合。
直接上配置文件。
<!--定义输出到PostgreSql数据库中,用于Windows Service这种无法正确识别程序当前目录从而无法使用相对路径的场合--> <appender name="AdoNetAppender_PostgreSQL_All" type="log4net.Appender.AdoNetAppender"> <bufferSize value="10"/> <connectionType value="Npgsql.NpgsqlConnection, Npgsql"/> <!--PostgreSql连接字符串--> <connectionString value="Server=127.0.0.1;Port=5432;User Id=postgres;Password=tm;Database=postgres;"/> <!--PostgreSql插入字符串--> <!--如果想在PostgreSql中保持字段字有大小写,要加入" 但是由于我用了Ormlite,所以不需要了 <commandText value="INSERT INTO "Log" ("AppDomain", "AspnetCache", "AspnetContext", "AspnetRequest", "AspnetSession", "Logger", "Date", "Identity", "Level", "Location", "Exception", "Message", "Thread", "NDC", "StackTraceDetail", "UserName", "UTCDate") VALUES (:AppDomain, :AspnetCache, :AspnetContext, :AspnetRequest, :AspnetSession, :Logger, :Date, :Identity, :Level, :Location, :Exception, :Message, :Thread, :NDC, :StackTraceDetail, :UserName, :UTCDate)"/> --> <!--为了配合Ormlite生成的表,中间加上下划线--> <commandText value="INSERT INTO log (app_domain, aspnet_cache, aspnet_context, aspnet_request, aspnet_session, logger, date_time, identity, level, location, exception, message, thread, ndc, stack_trace_detail, user_name, utc_date) VALUES (:AppDomain, :AspnetCache, :AspnetContext, :AspnetRequest, :AspnetSession, :Logger, :Date, :Identity, :Level, :Location, :Exception, :Message, :Thread, :NDC, :StackTraceDetail, :UserName, :UTCDate)"/> <parameter> <parameterName value="AppDomain"/> <dbType value="String"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%appdomain"/> </layout> </parameter> <parameter> <parameterName value="AspnetCache"/> <dbType value="String"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%aspnet-cache"/> </layout> </parameter> <parameter> <parameterName value="AspnetContext"/> <dbType value="String"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%aspnet-context"/> </layout> </parameter> <parameter> <parameterName value="AspnetRequest"/> <dbType value="String"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%aspnet-request"/> </layout> </parameter> <parameter> <parameterName value="AspnetSession"/> <dbType value="String"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%aspnet-session"/> </layout> </parameter> <parameter> <parameterName value="Logger"/> <dbType value="String"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%logger"/> </layout> </parameter> <parameter> <parameterName value="Date"/> <dbType value="DateTime"/> <layout type="log4net.Layout.RawTimeStampLayout"/> </parameter> <parameter> <parameterName value="Identity"/> <dbType value="String"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%identity"/> </layout> </parameter> <parameter> <parameterName value="Level"/> <dbType value="String"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%level"/> </layout> </parameter> <parameter> <parameterName value="Location"/> <dbType value="String"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%location"/> </layout> </parameter> <parameter> <parameterName value="Exception"/> <dbType value="String"/> <layout type="log4net.Layout.ExceptionLayout"> </layout> </parameter> <parameter> <parameterName value="Message"/> <dbType value="String"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message"/> </layout> </parameter> <parameter> <parameterName value="Thread"/> <dbType value="String"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%thread"/> </layout> </parameter> <parameter> <parameterName value="NDC"/> <dbType value="String"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%ndc"/> </layout> </parameter> <parameter> <parameterName value="StackTraceDetail"/> <dbType value="String"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%stacktracedetail{10}"/> </layout> </parameter> <parameter> <parameterName value="UserName"/> <dbType value="String"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%username"/> </layout> </parameter> <parameter> <parameterName value="UTCDate"/> <dbType value="DateTime"/> <layout type="log4net.Layout.RawUtcTimeStampLayout"/> </parameter> </appender>
运行时当前目录下要有Npgsql.dll,还要事先在PgSQL中建好表,好人做到底,再奉上Ormlite生成的SQL:
-- Table: log-- DROP TABLE log;CREATE TABLE log( id serial NOT NULL, date_time timestamp without time zone NOT NULL, thread text, level text, logger text, message text, exception text, stack_trace_detail text, location text, identity text, app_domain text, user_name text, ndc text, utc_date timestamp without time zone, aspnet_cache text, aspnet_context text, aspnet_request text, aspnet_session text, CONSTRAINT log_pkey PRIMARY KEY (id))WITH ( OIDS=FALSE);ALTER TABLE log OWNER TO postgres;-- Index: idx_log_level-- DROP INDEX idx_log_level;CREATE INDEX idx_log_level ON log USING btree (level COLLATE pg_catalog."default");-- Index: uidx_log_date-- DROP INDEX uidx_log_date;CREATE UNIQUE INDEX uidx_log_date ON log USING btree (date);
发完贴子才发现系统将"给解析成了双引号,再直接贴上:
<!--如果想在PostgreSql中保持字段字有大小写,要加入"
但是由于我用了Ormlite,所以不需要了
<commandText value="INSERT INTO "Log"
("AppDomain", "AspnetCache", "AspnetContext", "AspnetRequest", "AspnetSession",
"Logger", "Date", "Identity", "Level", "Location", "Exception",
"Message", "Thread", "NDC", "StackTraceDetail", "UserName", "UTCDate")
VALUES
(:AppDomain, :AspnetCache, :AspnetContext, :AspnetRequest, :AspnetSession, :Logger, :Date, :Identity, :Level, :Location, :Exception,
:Message, :Thread, :NDC, :StackTraceDetail, :UserName, :UTCDate)"/>
-->
- log4net输出到PostgreSql
- Log4net输出信息到RichTextBox
- log4net输出到IBM DB2问题解决记录
- log4net按照不同的【LEVEL】级别输出到不同文件
- log4net按照不同的【LEVEL】级别输出到不同文件
- c# log4net 日志输出到 本地文件 textbox listview DEMO
- log4net输出log不起作用
- log4net输出xml日志
- Log4Net自定义属性输出
- Log4net 自定义错误输出
- log4net日志不输出
- log4net输出日志
- 如何输出POSTGRESQL的表的数据到CSV文件
- Postgresql如何使得查询语句输出到文件
- log4net 各种等级的消息 输出到不同日志文件的 配置文件方式
- 一些关于怎样把log4net信息输出到UI界面的思路
- log4net 日志输出类型列举
- log4net输出错误行号配置
- 微软2014实习生及秋令营技术类职位在线测试-题目1 : String reorder
- cin函数
- 路由器和交换机的区别详解
- 当我清醒的认识到自己后
- osgEarth获取经纬度和高程的几种方法
- log4net输出到PostgreSql
- 微软2014机试第一题
- IE6下li无法自适应宽度解决办法
- 二叉树相关面试题及代码
- 随想-2014-04-12
- HDU_2031进制转换
- 2014微软在线测试-String reorder-WA
- 妙味云课堂之css:滑动门、圆角、css精灵
- 使用Disk Genius恢复硬盘分区表