Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 11:04, 9 April 2008.

Criando logs

From Forum Nokia Wiki

Utilizar arquivos de log é uma boa forma de obter informações sobre a execução do seus programas assim como corrigir erros.

Para criar os logs iremos utilizar a classe RFileLogger, essa classe permite gerar um arquivo .txt com as informações que você desejar.

Contents

Criando o log

No Symbian OS arquivos de logs são armazenados na pasta logs no diretório (\Epoc32\winscw\c), como essa pasta não vem criada por default, ela deve ser criada. Dentro dessa pasta deve ser criada uma outra pasta para armazenar os seus logs, esse diretório será utilizado na construção da classe.

Para utilizar a classe RFileLogger é preciso incluir o cabeçalho flogger.h e dentro do arquivo .mmp do seu projeto deve-se incluir a biblioteca flogger.lib

O primeiro passo é criar uma instância da classe RFileLogger e então fazer a conexão ao servidor de logs.

RFileLogger iFileLogger;
iFileLogger.Connect();

Iremos então utilizar a função CreateLog para gerar o arquivo de log, nessa função serão passados o diretório onde ficará os logs (a pasta encontrada na pasta logs), o nome do arquivo de log, e o modo no qual o log será criado.

Nota: O arquivo de log será criado apenas se o diretório existir.

Exemplo:

_LIT(KLogDir,"projeto");
_LIT(KLogArquivo,"logfile.txt");
 
iFileLogger.CreateLog(KLogDir, KLogArquivo, EFileLoggingModeOverwrite);

Analisando o código:

iFileLogger - instância da classe RFileLogger.
KLogDir - literário com o diretório onde o log será armazenado.
KLogArquivo - literário com o nome do arquivo do log.
EFileLoggingModeOverwrite - modo no qual o arquivo será criado, podendo ser Overwrite para sobrescrever o arquivo (caso o arquivo não exista ele será criado) ou append(adiciona as novas informações no final do arquivo).

Para gravar no log, será utilizada a função Write, ela possui diversas variâncias, é interessante você verificar os documentos que acompanham o SDK para analizar qual função preenche seus requisitos.

Como exemplo será mostrado a utilização da função Write de duas maneiras diferentes:

_LIT( KExemplo, "Ola, fazendo um teste");
iFileLogger.Write( KExemplo);

Nesse exemplo, será gravado no arquivo logfile.txt a string "Ola, fazendo um teste"

_LIT( KLogDir2, "projeto");
_LIT(KLogArquivo2, "logfile2.txt");
_LIT( KExemplo2, "Ola, fazendo um teste2");
iFileLogger.CreateLog( KLogDirectory2, KLogFile2, EFileLoggingModeOverwrite);
iFileLogger.Write( KExemplo2);

Nesse exemplo, iremos gravar as informações em outro arquivo de log, diferente do criado no CreateLog, a definição é basicamente a mesma, porém temos uma última referência que passa a string para o arquivo.

Nota: na utilização desse segundo exemplo não é necessário chamar a função Connect().

Após gravar as informações ao arquivo de log, é preciso fechar o arquivo e disconectar do servidor de logs.

Exemplo:

iFileLogger.CloseLog();
iFileLogger.Close();

Removendo a hora/data no log

Para desabilitar a exibição da hora e data no arquivo de log, basta fazer a chamada a função:

iFileLogger.SetDateAndTime( EFalse, EFalse);

essa função recebe dois argumentos, ambos booleanos, o primeiro é referente a data e o segundo a hora. Para ativa-los basta substituir por ETrue.

Exibindo valores das variáveis

Exibir valores da variáveis é muito semelhante a utilizada no printf(), pode ser feita utilizando a função WriteFormat() como exibido abaixo:

TInt iValor = 123;
_LIT( KValorInt, "Valor Variavel = %d");
iFileLogger.WriteFormat(K ValorInt, iValor);

A saída será:

20/05/2007 11:01:53 Valor Variavel = 123

Exemplo

RFileLogger exemplo

Documento SDK

RFileLogger - Referência SDK

Related Discussions
Thread Thread Starter Forum Replies Last Post
[moved] About CLogClient stone_cheng General Symbian C++ 3 2008-06-25 23:40
Setting up Nokia activ server AcCom WAP Servers 5 2002-08-07 07:45
Can't create settings file and log file. skhimsara General Symbian C++ 1 2006-05-08 09:25
Nokia Cardphone 2.0 on Windows 2000 multiuser/domain environment sbstra General Discussion 0 2003-06-16 14:56
call tracking project sramanujamn General Symbian C++ 4 2006-06-08 13:07
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX