TFCweb
1.0.4 $Rev: 483 $
TFC Primavera 2012: Nucli d'un servidor web
|
#include "Excepcions.h"
#include <fstream>
#include <memory>
#include <ostream>
#include <sstream>
#include <stdexcept>
#include <string>
#include <vector>
#include <boost/filesystem.hpp>
#include <boost/thread.hpp>
Veure el codi d'aquest fitxer.
Classes | |
class | ErrorDestiNoAssociat |
Indica que s'ha intentat operar sobre un destí de logging no associat a l'objecte Log . Més... | |
class | ErrorLogNoValid |
Indica que s'ha intentat utilitzar com a fitxer no vàlid (directori o no escribible) Més... | |
class | Log |
Interfície de control de Logging. Més... | |
class | MissatgeLog |
Missatge individual de log. Més... |
Espais de Noms | |
namespace | tfc |
Espai de noms del Treball de Final de Carrera. |
Enumeracions | |
enum | NivellLog { NivellDebug = 1, NivellInfo, NivellWarning, NivellError, NIVELL_PER_DEFECTE_LOG = NivellDebug, NIVELL_MES_SILENCIOS = NivellError, NIVELL_MES_VERBOS = NivellDebug, NIVELL_PER_DEFECTE_MISSATGE = NivellWarning } |
Nivells de logging. Més... |
Funcions | |
void | commit (MissatgeLog &ml) |
Manipulador final de missatge log: Imprimir la línia actual. | |
MissatgeLog | log () |
Interfície de creació de missatges de log. | |
std::shared_ptr < ManipuladorParametritzat > | nivell (NivellLog n) |
Manipulador parametritzat: Indicació del nivell de logging de l'entrada. | |
MissatgeLog & | rollback (MissatgeLog &ml) |
Manipulador de missatge de log: Cancel·lar la línia actual de ml . |
El mecanisme de logging és molt més simple d'utilitzar, del que la interfície pot donar a entrendre. Està dissenyat entorn missatges o entrades del log.
Un objecte tfc::Log únic controla els destins a on s'enviaràn els missatges de log. L'accés a l'objecte Log es fa mitjançant tfc::Log::singleton(), i s'en poden associar destins tals com fitxers o streams mitjançant tfc::Log::associa()
Els missatges individuals es creen amb log() i s'hi poden inserir valors com si es tractés d'un flux estàndard:
Un missatge de log es finalitza inserint-hi tfc::commit():
En inserir tfc::commit() el missatge s'envia automàticament a tots els destins associats a l'objecte tfc::Log.
Cada destí i cada missatge tenen un nivell (tfc::NivellLog), els missatges només s'enviaran als destins que tinguin un nivell igual o inferior al seu.
L'ús de manipuladors de tfc::MissatgeLog està inspirat en els manipuladors de sortida de la biblioteca estàndard (p.e. std::endl
): quan s'insereixen en el tfc::MissatgeLog el modifiquen o provoquen algun efecte com a conseqüència.
Com en la biblioteca estàndard hi ha dos tipus de manipuladors, els simples (com std::endl
) i els parametritzats (com std::setfill
)
Definició al fitxer Log.h.