2012-06-07 79 views
3

我有很多現有的C和C++代碼在使用syslog的Android上運行。如何讓系統日誌調用的輸出顯示在logcat中?Android NDK:你如何將syslog輸出重定向到logcat?

(這是一個開發時間唯一的問題,我不關心,如果該解決方案是不可移植或無法發貨。),使用LOG_PERROR不是非常有用

注意。你可以這樣做:

openlog("mystuff", LOG_PERROR | LOG_PID, LOG_USER); 

的問題是,使用syslog人假設他們也可以使用openlog;你必須假定你的開放日誌(指定LOG_PERROR)將被現有的對開放日誌的調用覆蓋。

回答

1

你可以看一下here來閱讀如何使用本地代碼登錄,然後用你的syslog函數替換你使用這個函數輸出。

+1

這是不實際的,除非你有一個沒有外部依賴的小項目。 –

+0

@James:Android已經是相當獨特的環境(bion libc)。如果你可以重新編譯你的項目,只需在你的'CFLAGS'中添加'-include syslogwrapper.h',頭文件包含'#define'的'syslog()'和'openlog()'重映射。如果Android甚至提供了這兩個功能,我會感到驚訝。 – FooF

+0

該鏈接現已停止,但副本位於waybackmachine http://web.archive.org/web/20120729145744/http://blog.blackwhale.at/?p=218 – JohnTESlade