用来在log文件记录debug信息的简单宏
文章信息
- 详细描述
RFileLogger累可以提供静态和非静态的方法用于记录log文件。使用一些简单的宏,我们就可以很方便的记录log文件
- 解决方案
下列头文件必须包括在每个要向log文件写内容的源文件中。KLogsDir常量可以自己定义用于标识在C:\logs下包含的log文件
这个log只有在c:\logs\下面KLogsDir指定的目录存在时才会生成。这种方式下,只要通过移除目录即可保证log的打开或关闭,而无需重新编译整个文件。
#ifndef __FILELOGGER_H__
#define __FILELOGGER_H__
#include <e32std.h>
#include <flogger.h> // link against flogger.lib
_LIT( KLogsDir, "MYAPP");
_LIT( KLogFileName, "log.txt");
#define __LOGSTR_TOFILE(S) { _LIT(KTmpStr, S); RFileLogger::WriteFormat(KLogsDir(), KLogFileName(),
EFileLoggingModeAppend, KTmpStr()); }
#define __LOGSTR_TOFILE1(S, P0) { _LIT(KTmpStr, S); RFileLogger::WriteFormat(KLogsDir(), KLogFileName(),
EFileLoggingModeAppend, TRefByValue<const TDesC>(KTmpStr()),P0); }
#define __LOGSTR_TOFILE2(S, P0, P1) { _LIT(KTmpStr, S); RFileLogger::WriteFormat(KLogsDir(), KLogFileName(),
EFileLoggingModeAppend, TRefByValue<const TDesC>(KTmpStr()),P0,P1); }
#endif /* __FILELOGGER_H__ */
使用方法
注意这些宏不能用于可变的参数列表,只能是指明数目情况下才能使用:
// Log a single line of text without arguments
__LOGSTR_TOFILE("Init complete.")
// Log a single integer value
__LOGSTR_TOFILE1("Magic number: %d", intValue)
// Log a string (descriptor) + integer value
__LOGSTR_TOFILE2("Message: \"%S\", self-destructs in %d sec", &msgDes, timeleft)
如果需要的话可以根据上述形式记录更多的变量参数。


(no comments yet)