您的位置:首页 > 其它

[S60]使用日志类RFileLogger输出调试信息

2010-02-04 10:57 393 查看
一、概述:
类RFileLogger对应的头文件和库文件分别是flogger.h和flogger.lib。
我习惯把opening代码放到我希望跟踪的class的ConstructL()函数里面,然后在析构函数里closing.在真正编码时,你最好检测一下Connect和CreateLog是否返回了KErrNone.

二、使用:
1、在类的二阶段构造ConstructL()中加上下面代码:
//打开日志文件服务的连接
RFileLogger iLog; iLog.Connect(); iLog.CreateLog(_L("MyLoggingDirectory"),_L("MyLogFile"),EFileLoggingModeOverwrite)
其中CreateLog函数有三个参数: Log路径 Log文件名 记录模式(EFileLoggingModeOverwrite|EFileLoggingModeAppend)
上面代码,是我的log文件的full path(手机上的文件系统) C:/Logs/MyLoggingDirectory/MyLogFile.
2、在类的析构函数中加入下面代码:
//关闭log文件和服务器连接
iLog.CloseLog();
iLog.Close();
3、向日志文件中输入文本和数据
命令 Log文件
iLog.Write(_L("Hello World")) 11/07/2003 4:00:13 Hello World
iLog.WriteFormat(_L("Result=%d"),err) 11/07/2003 4:00:13 Result=0 iLog.HexDump(aHeader,aHeader,myPtr,4) 11/07/2003 4:00:13 myBuf:0000: 41 42 00 44 AB.D

如果不想记录日期和事件,可以使用这个函数来关闭:
iLog.SetDateAndTime(TBool aUseDate, TBool aUseTime)

三、使用注意:
1、 在模拟器上调试时(即日志文件文件创建在计算机上):
这时,日志文件的目录应该是:C:/Symbian/7.0s/Series60_v21/Epoc32/wins/c/logs
上面的代码实际上就是在这个目录里创建一个名字为MyLoggingDirectory的文件夹,并在这里面创建一个没有扩展名的日志文件MyLogFile。
注意:文件夹MyLoggingDirectory必须由我们手动创建,但日志文件MyLogFile程序会给我们创建。如果没有创建这个文件夹,那么日志文件也就不会被创建了,但这时候程序也不会报错,只是得不到调试信息了而已。
2、 在手机上调试时(即日志文件创建在手机上)

void WriteLog(const TDesC& aLogDir, const TDesC& aLogFile, TRefByValue<const TDesC16> aFmt, ...)
{
RFileLogger iLog;
iLog.Connect();
iLog.CreateLog(aLogDir, aLogFile, EFileLoggingModeAppend);

VA_LIST list;
VA_START(list, aFmt);
iLog.WriteFormat(aFmt, list);
iLog.CloseLog();
iLog.Close();
return;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: