我正在開發一個應用程序,它需要解析由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