IOS日志輸出工具-syslogd

清楚log的命令:echo "" > syslog

越獄環(huán)境下syslogd是ios中記錄系統(tǒng)日志的守護進程。syslogd to var/log/syslog的作用是把日志寫入 var/log/syslog文件中

在安裝完syslogd這個插件后需要重啟一次ios(reboot也是一個系統(tǒng)進程),才會生成/var/log/syslog文件,在ios運行的全過程中這個文件會越來越大

可以通過cat /dev/null > /var/log/syslog來清空它

安裝源是http://apt.saurik.com

NSLog函數(shù)記錄日志對于開發(fā)人員來說很方便,對于測試人員來說很麻煩,通常記錄日志到文件,再通過email發(fā)出來,我一直覺得使用很不方便。

而且又不能像android那樣連上USB,啟動DDMS就可以看日志,所見即所得。

1. 配置日志服務器

日志本來是一個古老的技術(shù),可是linux內(nèi)核就有日志服務了,那么我覺得可以直接使用linux 的syslogd服務作為日志服務器。

syslogd默認配置是不支持收集遠程日志的,可以在linux 上打開 “/etc/sysconfig/syslog”配置,給SYSLOGD_OPTIONS加上 " -r " 參數(shù)即可

編輯配置文件??vi /etc/sysconfig/syslog

# Options to syslogd

# -m 0 disables 'MARK' messages.

# -r enables logging from remote machines

# -x disables DNS lookups on messages recieved with -r

# See syslogd(8) for more details

SYSLOGD_OPTIONS="-r -m 0"

# Options to klogd

# -2 prints all kernel oops messages twice; once for klogd to decode, and

#????once for processing with 'ksymoops'

# -x disables all klogd processing of oops messages entirely

# See klogd(8) for more details

KLOGD_OPTIONS="-x"

#

SYSLOG_UMASK=077

# set this to a umask value to use for all log files as in umask(1).

# By default, all permissions are removed for "group" and "other".

然后重啟日志服務?? sudo /etc/init.d/syslog restart

2. iOS 使用日志接口

iphone上也可直接syslog函數(shù),但配置了iphone syslog服務把日志發(fā)到遠程服務器,所以不JB是不行的。更何iOS碼農(nóng)更新一直都很積極。

只好另辟蹊蹺。然后通過抓syslog協(xié)議的數(shù)據(jù)包,發(fā)現(xiàn)是直接以明文作為UDP包發(fā)送的,那這個就好辦了,不就是幾行代碼的問題么。

具體參見源碼

1

2#define LOG_SERVER_IP?????? "192.168.2.13"???? //設(shè)置你syslog服務器的IP

#define LOG_SERVER_PORT???? 514?????????????????? //設(shè)置syslog服務器的端口

然把logger.h及l(fā)ogger.m加到你的項目中,在xcode的pch預編譯文件中加入 import "logger.h"即可

然后一句代都都不用寫,自動把原有NSLog日志發(fā)送到遠程服務器上了

3. 查看日志

通ssh連接到日志服務器上面,通tail 命令查看日志, grep來過濾日志內(nèi)容

1

2

3tail-f /var/log/message |grep<程序tail;

tail -f /var/log/messagrep| grep ]?&ntail(可以添加多個過濾條件)

tail -3000 /vgrepog/message [| grep <程序名>]??(顯示最近的3000條記錄)

P.S. 雖然代碼很簡單,我覺得這個思路可以有助于大家測試程序,需者自取。

假如你沒有l(wèi)inux服務器,或者不會玩linux也沒有關(guān)系,可以試試windows上syslog server,http://sourceforge.net/projects/syslog-server/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容