2013-07-19 75 views
5

我正在從C#可執行文件啓動postgres中的真空過程。我希望消息返回到我的可執行文件,但是我無法從輸出窗口返回消息。從postgres獲取消息

總之,我期待在使用像Npgsql的Postgres的這相當於:

// Display messages this code is for SQL server to reteive data back from message tab 

conn.InfoMessage += delegate(object sender, SqlInfoMessageEventArgs e) { 
    stdmForm.txtLastSQLMessages.Text +`=` "\n" + e.Message; 
}; 

我想用在Npgsql的我的C#代碼得到這個消息。

+0

獲取什麼信息?你是否想要獲得'VACUUM VERBOSE'輸出? –

+0

某些快速搜索沒有找到在nPgSQL客戶端中獲取「NOTICE」和更低級別日誌消息的方法。您可以設置'client_min_messages',但我不知道如何從nPgSQL訪問日誌。看看源代碼? –

+0

你的意思是NPGSQl代碼? – prvnsaini

回答

2

我試了下面的代碼。它會給你完整的執行日誌。從這我就解析了我所需的日誌。這不是最好的方式,但我無法找到其他任何東西。

//log the Vacuum command information 
NpgsqlEventLog.Level = LogLevel.Debug; 
NpgsqlEventLog.LogName = VacuumLogFilePath + "rolling.log"; 
NpgsqlEventLog.EchoMessages = false; 

try 
{ 
    //Run the Vacuum Command 
    NpgsqlCommand comm = new NpgsqlCommand("VACUUM VERBOSE ANALYZE", connection); 
    comm.ExecuteNonQuery(); 

}