軟體平台:android6.0
硬體平台:mtk6797
mtk平台的日誌級別可以從一條系統屬性檢視:persist.log.tag,此條屬性預設為v級別,然後系統的日誌瘋狂的輸出,單單從操作層面看的話,可以setprop這個屬性的值來提公升系統的日誌輸出級別。比如,想把級別提公升到error級別,則只需要執行如下操作:
setprop persist.log.tag e 即可。
問題是,我們如何修改系統預設的日誌級別,比如裝置第一次啟動,日誌級別就是e或者其他。
我跟了一下日誌設定服務相關的**,vendor/mediatek/proprietary/external/libxlog/xlogcmd/xlog.c檔案有對log服務的相關引數初始化,系統啟動時,xlog作為乙個service啟動,是在device/mediatek/mt6797/init.xlog.rc中定義啟動,內容如下:
service xlogboot /system/bin/xlog boot
user root
oneshot
disabled
向可執行檔案xlog傳入引數boot,從xlog的main方法看:
int main(int argc, char *argv)
const char *name = argv[1];
if (!strcmp(name, "boot"))
會走filter_boot,這個方法會去解析乙個系統預設的log配置檔案:
#define xlog_default_filter_path "/system/etc/xlog-filter-default"
這是配置檔案的路徑定義,下邊我們看這個檔案的生成方式。
merge-xlog-filter-tags.py 這個python指令碼生成了這個檔案,從指令碼中看,將v設定為初始化的級別,將v改為e即可。
# change xlog default print level 'e'
olevel = "error/debug+error/error"
if default_level != none:
olevel = default_level
default_filter_buffer.write("xlog-filter-v2\nall\t%s\n" % (olevel))
這樣的話,生成的xlog-filter-default的內容如下:
如此,結果就妙了,會將persist.log.tag值預設設定為e,而不需要文章開始的setprop手動操作。
Log 日誌級別
日誌記錄器 logger 是日誌處理的核心元件。log4j具有5種正常級別 level 1.static level debug debug level指出細粒度資訊事件對除錯應用程式是非常有幫助的。2.static level info info level表明 訊息在粗粒度級別上突出強調應用程式...
Log 日誌級別
日誌記錄器 logger 是日誌處理的核心元件。log4j具有5種正常級別 level 1.static level debug debug level指出細粒度資訊事件對除錯應用程式是非常有幫助的。2.static level info info level表明 訊息在粗粒度級別上突出強調應用程式...
MTK功能機平台抓log
好久沒用這個了,記錄備忘。主make檔案修改 kal trace output full kal debug level slim debug kal rich debug kal normal debug kal slim debug kal release kal.如果想不進工程模式設定就可以抓...