Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Qua 10 Abr 2013, 12:10
oin pessoa

Bem, como o título já diz, fiz mais uma class daora ai pah.

A classe log te dá a possibilidade de gerar arquivos de log com muito mais facilidade.

vamos ao uso:

-Declaração

-syntax:
Código:
sck::log program("file name", "log title", sck::log::to_open);

: sck = namespace
: log = nome da class
: parametros: 1 - nome do arquivo, 2 - título do log, 3 - maneira de se abrir ( sck::log::to_open ou sck::log::to_clear)

- sck::log::to_open : se o arquivo já existe, ele irá o abrir normalmente sem alterações
- sck::log::to_clear : se o arquivo já existe, ele irá o limpar

também há outros nomes para a class log:

sck::logger / sck::LOG / sck::log_class .

-Uso ( metodos )

metodos:

void new_table(std::string mainname); // cria uma nova tabela 1
bool open(void); // reabre o I/O do arquivo 2
bool close(void); // fecha o I/O do arquivo ( e finaliza o log ) 3

operator << (std::string mensage); // escreve uma mensagem 4
operator [] (std::string mainname); // cria uma nova tabela 5

#number 1:

irá criar uma nova tabela como esta:

Código:
*************************
Title name
*************************

#number 2:

apenas irá abrir o mesmo arquivo para poder escrever mais

#number 3:

apenas irá fechar o arquivo e finalizar o log com isto:

Código:
*************************
12:0:53 - finished log

sim, a cada mensagem, ele marca a hora que foi escrita

#number 4:

aqui é a parte onde voce escreverá suas mensagens de saída

uso:
Código:
sck::log program("file name", "log title", sck::log::to_clear);
program << "mensagem de teste" << sck::log::end;
program << sck::log::noclock << "mensagem de teste 2" << sck::log::end;

para terminar a linha, voce usa sck::log::end e para não mostrar a hora na mensagem, se usa sck::log::noclock

output:
Código:
*************************
log title
*************************
12:0:53 - mensagem de teste
mensagem de teste 2

*************************
12:0:53 - finished log

#number 5:

também cria uma nova tabela, é uma maneira mais rápida de uso

uso:
Código:
ilog["Titulo"];


-------------DOWNLOAD--------------

baixe aqui

PS: são dois files, header e souce ( .h e .cpp )
inclua eles no seu projeto para poder compilar


Última edição por Thelost em Qua 10 Abr 2013, 12:45, editado 3 vez(es)
Fabio
Programador - Avançado
Programador - Avançado
Mensagens : 18259
Reputação : 388
Desde : 04/05/2012
Idade : 22
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com
em Qua 10 Abr 2013, 12:25
Você também fez uma class de log :3

Daora :3

______________________________
LOG lib [cpp] 226c0ef57f9d7520d171cbadc68b3c56
Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------
LOG lib [cpp] 76561198069372249
Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Qua 10 Abr 2013, 12:29
epo, nem ia fazer, mas gostei da ideia entao pa
Fabio
Programador - Avançado
Programador - Avançado
Mensagens : 18259
Reputação : 388
Desde : 04/05/2012
Idade : 22
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com
em Qua 10 Abr 2013, 12:34
@Thelost escreveu:epo, nem ia fazer, mas gostei da ideia entao pa


Uma coisa legal é fazer isso:

Código:
try{

while(running){
clear screen

coisas do jogo

swap buffers
}

}catch(std::exception &e){

mande pro log(e.what());

}

:)

______________________________
LOG lib [cpp] 226c0ef57f9d7520d171cbadc68b3c56
Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------
LOG lib [cpp] 76561198069372249
Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Qua 10 Abr 2013, 12:37
opai

ok adicionei um bang ali novo (flags)
Gabriel
Veterano
Veterano
Mensagens : 7142
Reputação : 64
Desde : 29/12/2012
Idade : 18
Localização : Cidade - Estado
Link : /2012
Ver perfil do usuário
em Qua 10 Abr 2013, 12:47
Parabéns Thelost xeroso :)

______________________________
Assinatura por Jacobi
LOG lib [cpp] 33cved2
LOG lib [cpp] 76561198152066232LOG lib [cpp] AddFriend
LINK/2012
Programador - Avançado
Programador - Avançado
Mensagens : 7652
Reputação : 349
Desde : 03/05/2012
Ver perfil do usuário
em Qua 10 Abr 2013, 13:27
Fabio, como sempre esquecendo do const...
Código:
}catch(const std::exception &e){

______________________________
"Give a man a game engine and he delivers a game. Teach a man to make a game engine and he never delivers anything."

LOG lib [cpp] 2ywzqdu
Fabio
Programador - Avançado
Programador - Avançado
Mensagens : 18259
Reputação : 388
Desde : 04/05/2012
Idade : 22
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com
em Qua 10 Abr 2013, 13:36
@LINK/2012 escreveu:Fabio, como sempre esquecendo do const...
Código:
}catch(const std::exception &e){

Sorry pokerface

edit:

Minha class de log:

CLog.h:
Código:

#pragma once
#include <string>
#include <fstream>

class CLogException : public std::exception{
   CLogException(const char* wat) : std::exception(wat){}
};

class CLog{
public:
   std::string      FileName;
   std::string      LogContents;
   std::fstream   LogFile;

   static CLog *thisptr;

   CLog(std::string NameOfFile);
   void AddToLog(std::string Text);
   void FinishLog();
   std::string GetDateAndTime();
};

CLog.cpp:
Código:

#include "CLog.h"
#include <stdio.h>
#include <time.h>

CLog *CLog::thisptr = nullptr;

CLog::CLog(std::string NameOfFile){
   FileName = NameOfFile;
   LogFile.open(NameOfFile, std::ios::in | std::ios::out | std::ios::trunc);

   if(!LogFile.good()){
      throw CLogException("Impossivel criar ou abrir o arquivo de log");
      return;
   }

   LogContents = "************************************** \nLog stated at: ";
   LogContents += GetDateAndTime();
   LogContents += "\n************************************** \n\n";
   CLog::thisptr = this;
}

std::string CLog::GetDateAndTime(){
   char DateAndTimeStr[20];

   int IndexToReplaceByEspace;

   _strdate(DateAndTimeStr);
   IndexToReplaceByEspace = strlen(DateAndTimeStr);
   DateAndTimeStr[IndexToReplaceByEspace] = ' ';
   _strtime(&DateAndTimeStr[IndexToReplaceByEspace+1]);

   return std::string(DateAndTimeStr);
}

void CLog::AddToLog(std::string Text){
   LogContents += GetDateAndTime();
   LogContents += ": ";
   LogContents += Text;
   LogContents += "\n";
}

void CLog::FinishLog(){
   LogContents += "\n************************************** \nLog Finished at: ";
   LogContents += GetDateAndTime();
   LogContents += "\n************************************** \n";
   LogFile.write(LogContents.c_str(), LogContents.size());
}

obrigado LINK por me ajudar a corrigir umas viajens :)

______________________________
LOG lib [cpp] 226c0ef57f9d7520d171cbadc68b3c56
Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------
LOG lib [cpp] 76561198069372249
Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
Jean_Alves
Programador - Básico
Programador - Básico
Mensagens : 1168
Reputação : 7
Desde : 20/10/2012
Idade : 20
Localização : Belém - Pará
Ver perfil do usuário
em Qua 10 Abr 2013, 15:42
Muito bom thelost, mas ainda n está no meu nível -1 Fuch That Guy

______________________________
Meu not lol:

Processador: Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz (4 CPUs), ~2.4GHz
Memory: 4096MB RAM
Card name: Intel(R) HD Graphics 4000
Display Memory: 1674 MB
Fabio
Programador - Avançado
Programador - Avançado
Mensagens : 18259
Reputação : 388
Desde : 04/05/2012
Idade : 22
Link : gtamodvicio.blogspot.com
Ver perfil do usuáriohttp://gtamodvicio.blogspot.com
em Qua 10 Abr 2013, 15:55
@Jean_Alves escreveu:Muito bom thelost, mas ainda n está no meu nível -1 Fuch That Guy

pokerface

Mas é para isso que serve a class que ele fez, pra ajudar quem não quer fazer/não sabe pokerface


Última edição por Fabio em Qua 10 Abr 2013, 17:39, editado 1 vez(es)

______________________________
LOG lib [cpp] 226c0ef57f9d7520d171cbadc68b3c56
Modifico quase qualquer coisa.   :)
------------------>>>http://gtamodvicio.blogspot.com/<<<------------------
LOG lib [cpp] 76561198069372249
Meu PC:
Spoiler:

Configurações PC:
*Processador: Intel Core i7 4790K 4.00GHz LGA1150
*Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
*HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
*HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
*Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
*RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
*Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
*Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
*Monitor: LG 23MP55HQ Full HD HDMI 23'
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Qua 10 Abr 2013, 17:23
isso mesmo.
Conteúdo patrocinado
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum