使用RfileLogger在真机上通过Log进行事件跟踪
2008-07-01 14:19
218 查看
使用RfileLogger在真机上通过Log进行事件跟踪
From Forum Nokia Wiki
适用版本S60 2nd Edition , S60 3rd Edition
我们经常会碰到这样的情况:程序在模拟器上运行的很好,但是到手机上运行却出现莫名其妙的错误,程序留下一个“系统错误”就退出了,虽然我们可以通过返回的错误码知道大概的错误类型,但是要通过错误码来推测确切的错误所在似乎非常困难,如果能通过log文件把程序运行的路径记录下来,对我们定位错误会有非常大的帮助,对此symbian为我们提供了RfileLogger类实现这个功能。如前所讲,RfileLogger类就是用于实现在需要的时候提供事件记录的工具,如其名字所示,RfileLogger是一个资源类,使用之前必须要连接服务器,然后必须创建一个用于记录事件的文件,该函数为CreateLog,含有3个参数,第一个参数是用于指定存放log文件的文件夹名(相对于C:/Logs路径),第二个参数是log文件名,第三个参数指定了对log文件操作的方式(EFileLoggingModeOverwrite 是覆盖方式, EfileLoggingModeAppend是追加方式),下面是初始化RfileLogger的一个实例:
RFileLogger iLog; iLog.Connect(); //连接服务器 iLog.CreateLog(_L("LogDirectory"),_L("LogFile"),EFileLoggingModeOverwrite); //创建log文件
注意:文件夹路径是相对C:/Logs的,并且最后不需要加’/’结束符,因此以上例子中的存放log文件的完整路径为C:/Logs/LogDirectory,另外不要忘了在你的mmp文件中包含必须的flogger.lib库,同时flogger.h头文件也是必需的。使用完以后我们要关闭log文件以及RfileLogger实例与服务器的连接:
iLog.CloseLog(); //关闭log文件 iLog.Close(); //关闭连接
通常可以把初始化代码放在需要跟踪类的ConstructL()里,把关闭log的代码放在该类的析构函数中。创建RfileLogger实例以后,就可以使用log函数对指定的log文件进行log输出了,输出函数有以下3种:
Log函数 log文件中的输出 iLog.Write(_L("MyLog")) 11/07/2003 4:00:13 MyLog iLog.WriteFormat(_L("Number=%d"),number) 11/07/2003 4:00:13 Number=0 iLog.HexDump(aHeader,aHeader,myPtr,4) 11/07/2003 4:00:13 myBuf:0000: 41 42 00 44 AB.D
同时你可以通过SetDateAndTime函数设置是否需要输出时间和数据,该函数原型为:
void SetDateAndTime(TBool aUseDate, TBool aUseTime).
最后提醒一点,C:/Logs路径并不是系统自动创建的,如果你需要进行log输出,必须手动创建存放log文件的完整路径,在以上的例子中为C:/Logs/LogDirectory,然后运行程序就可以生成相应的log文件了,如果你不需要进行log跟踪了,只要删除这个文件夹就可以了。
best regards
davey_2
Retrieved from "http://wiki.forum.nokia.com/index.php/%E4%BD%BF%E7%94%A8RfileLogger%E5%9C%A8%E7%9C%9F%E6%9C%BA%E4%B8%8A%E9%80%9A%E8%BF%87Log%E8%BF%9B%E8%A1%8C%E4%BA%8B%E4%BB%B6%E8%B7%9F%E8%B8%AA"
相关文章推荐
- android studio 使用mates真机进行调试,在logcat中无法打印出代码中有Log.d输出的log
- 通过USB连接到Android真机,在终端中配置adb工具,并使用adb工具对安卓手机进行调试
- 在windows下使用cmd命令通过adb shell自动调用android模拟或真机的InstrumentRunner进行android 自动化测试
- 演示使用sql_trace和10046事件对其他会话进行跟踪,并给出trace结果
- 演示使用sql_trace和10046事件对其他会话进行跟踪,并给出trace结果
- 安卓应用程序在真机上调试时无打印信息,提示Unable to open log device ‘/dev/log/main’: No such file or directory在我们使用真机进行An
- SQL Server扩展事件(Extended Events)-- 使用system_health默认跟踪会话监控死锁
- 通过使用客户端证书调用 Web 服务进行身份验证{转}
- 使用gcc的-finstrument-functions选项进行函数跟踪
- SQL Server扩展事件(Extended Events)-- 使用扩展事件跟踪查询语句
- 使用Win32API LogonUser 在C#程序中进行域认证
- 通过Ajax方式上传文件(input file),使用FormData进行Ajax请求
- 直接使用XIB/NIB文件,读取信息创建 UIView [通过Nib文件进行反序列化,得到对象]
- hibernate入门第五课 通过Hibernate API编写访问数据库代码并使用junit进行单元测试
- 使用热备份进行分时恢复----怎样通过归档逐步恢复以缩短数据迁移时间
- 使用红米note3来进行真机的测试过程
- Quick cocos2dx-Lua(V3.3R1)学习笔记(十二)----使用Cocos Code IDE 配合自带的PrebuiltRuntimeLua.apk进行真机调试
- WPF中使用相对资源来进行绑定,数据源是通过DataContext来指定的
- 通过Ajax方式上传文件,使用FormData进行Ajax请求
- JavaEE开发之Spring中的事件发送与监听以及使用@Profile进行环境切换