S60中日志文件写入函数

一个在S60中日志文件写入的函数,适合记载程序在运行中的行为。

函数如下:

 

#define __DEBUG__

#ifdef __DEBUG__
_LIT(KLogFileName, 
"c:\\data\\log.txt");  // 日志文件存放位置

void CTestRmsDbGuiAppUi::LogInfo(const TDesC& aBuf)
    {
    RFs fs;
    User::LeaveIfError(fs.Connect());
    RFile file;
    TUint attr;
    TInt error 
= KErrNone;
    
if (fs.Att(KLogFileName, attr)!=KErrNone)
        {
        error 
= file.Create(fs, KLogFileName, EFileWrite|EFileShareAny);
        }
    
if (error == KErrNone)
        {
        TInt pos
= 0;
        error 
= file.Open(fs, KLogFileName, EFileWrite|EFileShareAny);
        
if (error == KErrNone)
            {
            error 
= file.Seek(ESeekEnd, pos);

            
if (error == KErrNone)
                {
                TBuf8
<256> buf;
                TPtrC ptr(aBuf);
                CnvUtfConverter::ConvertFromUnicodeToUtf8(buf, ptr);
                file.Write(buf);
                _LIT8(KEol, 
"\r\n");
                file.Write(KEol);
                file.Close();
                }
            }
        }

    fs.Close();
    }

#endif

 

 注意要引入f32file.h、UTF.h、APGCLI.H,在S60 3rd中必须拥有ReadUserData WriteUserData这两个能力。

使用方法:

 

#ifdef __DEBUG__
LogInfo(_L(
"--Test Log--"));
#endif

posted @ 2008-09-03 12:49  musée  阅读(593)  评论(0编辑  收藏  举报