Quiero crear una clase registrador de tal manera que con una funcionalidad de esta manera:¿Cómo se escribe una clase de logger con cout interfaz de estilo (registrador << "Error:" << val << endl;)
Logger log;
log << "Error: " << value << "seen" << endl;
Esto debería imprimirme un mensaje formateado personalizado. P.ej. "12-09-2009 11:22:33 Error 5 visto"
Mi clase simple Actualmente tiene este aspecto:
class Logger {
private:
ostringstream oss;
public:
template <typename T>
Logger& operator<<(T a);
}
template <typename T>
Logger& Logger::operator<<(T a) {
oss << a;
return *this;
}
void functionTest(void) {
Logger log;
log << "Error: " << 5 << " seen";
}
Esto hará que oss para tener correctamente el búfer "Error: 5 visto". Pero no sé qué otra función necesito escribir/modificar para que algo se imprima en la pantalla. ¿Alguien sabe cómo hacer que esto funcione o hay otra forma de diseñar esta clase para que funcione mi funcionalidad?
Pregunta:. La sello de tiempo. ¿Desea que se elimine el tiempo ?: 1) Cada expresión 2) Solo al comienzo de cada línea. ¿Desea que la línea termine automáticamente (según su prueba de función()). Básicamente debe ser un poco más específico sobre las condiciones bajo las cuales se agrega la marca de tiempo. Además, ¿está registrando en un archivo la consola? ¿Por qué necesita una clase especial y por qué no puede usar la secuencia estándar? –
Martin, esta es solo una clase de muestra Desmonté la clase de registrador original solo con el problema relacionado con el uso del estilo de cout de registrador. –