我正在开发一个应用程序,它需要解析由PostgreSql服务器生成的CSV日志。解析PostgreSQL CSV日志
日志存储C:\ Program Files文件\的PostgreSQL \ 9.0 \ DATA \ pg_log
在9.0.4
服务器版本的应用程序是用C夏普
开发- 解析日志之后的基本工具是显示DataGridView中的内容。
- 还有其他过滤器选项,例如查看特定日期时间范围内的日志内容。
然而这是主要的问题,日志格式不是可读
它首先用一种快速CSV阅读
然后,我们使用由方法String.Split与通常Foreach循环经历的阵列
示例日志数据线的自定义效用
2012-03-21 11:59:20.640 IST,“postgres”,“stock_apals”,3276,“localhost:1639”,4f697540.ccc,10,“空闲”,2012-03-21 11:59:20 IST,2/163,0 ,LOG,00000,“语句:SELECT id,pdate,itemname,qty from stock_apals order by pdate,id”,,,,,,,,“exec_simple_query,。\ src \ backend \ tcop \ postgres.c:900”, “”
正如您所见,日志中的列以逗号分隔,但是单个值 不是Quote Enclosed。
例如第一,4rth,6 ..列
是否有一个工具,或者可以找到畸形列和地方正则表达式行情
这尤其是对于服务表现,监守这些日志非常长,并且 新的几乎每小时都会生成
我只是想更新列并使用FastCSVReader来解析它。
感谢您的任何建议和帮助
不FastCSVReader支持混合引用/未引用的值吗? – 2012-03-22 07:02:05
发生错误的是它到达sql语句所在的列。它也为表格列设置了逗号。日志行是一个包含引号和非引号的列的混合串。是否有一个正则表达式或实用工具可以在CSVReader页面上将非引用列转换为引用列 – arvind 2012-03-22 09:09:27
它突出显示“该阅读器支持跨越多行的字段,唯一的限制是必须引用它们,否则将无法区分在格式不正确的数据和多行值之间。“ – arvind 2012-03-22 09:12:55