我該如何在日誌輸出資訊中新增上下文資訊,例如當前方法或者行號。
c預處理器提供了一些標準巨集,可以提供當前檔案,行號,或者函式的資訊。另外,objective-c有_cmd隱式引數,可以提供當前函式的選擇器,以及將選擇器和類轉換為字串的功能。你可以在除錯或者錯誤處理時在nslog語句中提供這些上下文資訊。
下面是列印當前方法和行號的例子。
nsmutablearray *someobject = [nsmutablearray array];
nslog(@"%s:%d someobject=%@", __func__, __line__, someobject);
[someobject addobject:@"foo"];
nslog(@"%s:%d someobject=%@", __func__, __line__, someobject);
下面是在日誌語句中很有用的非常常見的巨集和表示式。
c/c++/objective-c中用於日誌輸出的預處理巨集.
macro
format specifier
description
__func__
%s當前函式前面
__line__
%d原始碼檔案中的行號
__file__
%s原始碼檔案完整路徑
__pretty_function__
%s和__func__類似, 但是在 c++ **中包含更多的資訊.
objective-c中用於日誌輸出的表示式
expression
format specifier
description
nsstringfromselector(_cmd)
%@當前選擇器的名字
nsstringfromclass([self class])
%@當前物件類的名字
[[nsstring stringwithutf8string:__file__] lastpathcomponent]
%@原始碼檔案的名稱
[nsthread callstacksymbols]
%@當前棧資訊的刻度字串陣列。僅用於除錯,不用向終端使用者展示或者在**中用作任何邏輯。
改善Objective C的日誌輸出
我該如何在日誌輸出資訊中新增上下文資訊,例如當前方法或者行號。c預處理器提供了一些標準巨集,可以提供當前檔案,行號,或者函式的資訊。另外,objective c有 cmd隱式引數,可以提供當前函式的選擇器,以及將選擇器和類轉換為字串的功能。你可以在除錯或者錯誤處理時在nslog語句中提供這些上下文資...
我的Gentoo有待改善
1.缺少乙個漂亮的splash,聽說有乙個完美的字元介面fbsplash,一定得用 2.openbox還是沒有配置完美,因為選單都還沒有自己清理,只是在上面加上了自己的。3.換gdm嗎?使用輕量級的slim?4.使用bfs補丁重新編譯乙個核心,聽說能極大的提速桌面,有多塊呢?人可以感覺到的提速!5....
改善PHP的執行效率
1 如果能將類的方法定義成static,就盡量定義成static,它的速度會提公升將近4倍。2 並不是事必物件導向 oop 物件導向往往開銷很大,每個方法和物件呼叫都會消耗很多記憶體。3 row id 的速度是 row id 的7倍。4 echo 比 print 快,並且使用echo的多重引數 譯註...