📄 filelogger.cpp
字号:
/*
* ==============================================================================
* Name : CFileLogger
* Part of : AOExample
* Created : 3.5.2004 by Markus Pelkonen
* Implementation notes: See detailed documentation from the file
* "FileLogger.h"
* Version :
* Copyright: Nokia
* ==============================================================================
*/
#include <e32base.h>
#include <e32cons.h>
#include <e32std.h>
#include <f32file.h>
#include "FileLogger.h"
// -----------------------------------------------------------------------------
CFileLogger* CFileLogger::NewL(const TDesC &logFileName)
{
CFileLogger* result = new (ELeave) CFileLogger();
CleanupStack::PushL( result );
result->ConstructL( logFileName );
CleanupStack::Pop();
return result;
}
// -----------------------------------------------------------------------------
void CFileLogger::ConstructL(const TDesC &logFileName)
{
int pos = logFileName.LocateReverse( '\\' );
TPtrC dirName = logFileName.Left( pos+1 );
User::LeaveIfError(iFsSession.Connect());
iFsSession.MkDirAll(dirName);
if( iFile.Open(iFsSession,logFileName,EFileWrite|EFileStreamText)
== KErrNone )
{
// go to the end of the file
TInt tmp = 0;
iFile.Seek(ESeekEnd, tmp);
}
else
{
// file doesn't exist, create a new
User::LeaveIfError(iFile.Replace(iFsSession,logFileName,
EFileWrite|EFileStreamText));
}
_LIT(KOpened, "FileLogger opened.\n");
iBuf.Copy(KOpened);
Flush();
}
// -----------------------------------------------------------------------------
void CFileLogger::Flush()
{
TPtrC8 representation( (TUint8*)iBuf.Ptr(), iBuf.Size() );
iFile.Write( representation );
iFile.Flush();
iBuf.SetLength( 0 );
}
// -----------------------------------------------------------------------------
CFileLogger::~CFileLogger()
{
iFile.Close();
iFsSession.Close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -