Symbian系統中, 有一個寫Log的類。
這個類就是RFileLogger, 這個類是將log輸出在一個Log檔案中, 並自動附帶有一個時間截, 這個類很有用, 可以使用在模擬器上也可以在手機上使用.
使用這上RFileLogger類, 需要包含 flogger.h 標頭檔, 並串連到 flogger.lib 庫. 按網上的說明, 因為這個類呢, 是個可有可無的東西, 很多人自已都可以很快的寫出一個函數用來記錄Log, 所以在SDK中, 都查不到RFileLogger的使用說明介紹. 我用的是S60 v9.1版本, 好像以前2rd版SDK裡有, 不管怎樣, 至少這個類3rd裡還能用.
不管功能大小, 下面說說它的簡單用法.
RFileLogger iLog; //聲明執行個體, 一般為全域
iLog.Connect(); //串連Log服務
iLog.CreateLog(_L("LogDir"),_L("LogFile.txt"),EFileLoggingModeOverwrite);
// 第一個參數是Log檔案所在的檔案夾,第二個是Log檔案名稱, 第三個檔案操作Model, 從命名上很容易看出是採用什麼模式
iLog.Write(_L("Log Content!")); //使用Write方法, 在需要打Log的地方使用.
iLog.CloseLog(); //關閉檔案
iLog.Close(); //斷開Log服務
以上就是這個類最簡單的用法, 其時也就是對檔案的操作.
但要注意一下: 只有當CreateLog()方法指定的路徑, 還有Log檔案存在的情況下, Log才能被寫入, 其實就是這個方法可以建立檔案,但不能建立檔案夾. 在模擬器中預設的Log檔案夾的位置是: /epoc32/winscw/c/Logs; 而在手機上就是在C:/Logs.
如上面的例子, LogFile.txt檔案在模擬器中的位置就在/epoc32/winscw/c/Logs/LogDir檔案夾下. 需要手動建立一個LogDir檔案夾先.