<Symbian>创建调试日志

本文详细介绍如何在Symbian平台上使用RFileLogger进行程序调试,包括创建日志文件、写入日志信息的方法及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

我本是j2me的程序员,习惯了使用System.out.println来调试程序,接触Symbian么多长时间,开始调试程序的时候,苦于么有找到控制台打印的api,无意中在www.j2medev.com上找到关于调试日志的创建。起初也不是那么顺利的就能创建成功,毕竟很多资料的描述总是不够细节,这也是网络上的一个通病,所以我才会开辟这个blog,详细的记录我在symbian探索中的一些点点滴滴。下面关于Symbian创建调试日志的内容多半是转载www.j2medev.com,其中一些模棱两可的地方我也加以详解了。

 

在手机上调试代码或跟踪执行过程?RFileLogger也许可以帮助你.这个class的功能非常强大而且很容易使用。

 

1.首先介绍下log日志的文件夹。一般安装sdk后,log日志文件夹默认在模拟器c:/logs,拿S60_2nd_FP2_CW sdk来说,它安装后的log日志文件夹在/Symbian/8.0a/S60_2nd_FP2_CW/Epoc32/winscw/c/logs,logs就是默认的日志文件夹。

 

2.在程序中声明一个文件日志的连接并且创建一个log文件
//打开日志文件服务的连接
RFileLogger iLog;
iLog.Connect();
iLog.CreateLog(_L("MyLoggingDirectory"),_L("MyLogFile"),EFileLoggingModeOverwrite);
//..

//关闭log文件和服务器连接
iLog.CloseLog();

JAVA手机网[ http://www.cnjm.net/]

iLog.Close();

第3行的CreateLog函数有三个参数:
Log文件夹名
Log文件名
记录模式(EFileLoggingModeOverwrite|EFileLoggingModeAppend)

例如下列代码:

iLog.CreateLog(_L("MyLog"),_L("MyLogFile"),EFileLoggingModeOverwrite);

而生成的log文件的full path(pc的文件系统)
/Symbian/8.0a/S60_2nd_FP2_CW/Epoc32/winscw/c/logs/MyLog/MyLogFile.

其中要注意的是:MyLog文件夹要在程序运行前自行创建。

 

一般习惯把opening代码放到希望跟踪的class的ConstructL()函数里面,然后在析构函数里closing.在真正编码时,最好检测一下Connect和CreateLog是否返回了KErrNone.
一旦你完成了这些,你就可以向log文件中输入文本和数据了。基本的命令为:
命令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

JAVA手机网[ http://www.cnjm.net/]

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)

JAVA手机网[ http://www.cnjm.net/]

3.别忘了在MMP文件上加入flogger.lib,还有包含flogger.h头文件。现在可以编译执行你的程序了。等关闭模拟器以后,就能打开log日志查看你的调试信息了。

基于python实现的粒子群的VRP(车辆配送路径规划)问题建模求解+源码+项目文档+算法解析,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 算法设计的关键在于如何向表现较好的个体学习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。 算法设计的关键在于如何向表现较好的个体学习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值