Current required packages for Debian/Ubuntu
[rofl0r-conpix.git] / Logger.h
blob77ef3bba9625aca5f1db961a088511dbb95ab37f
1 /*
2 * Logger.h
4 * Created on: 04.12.2010
5 * Author: rofl
6 */
8 #ifndef LOGGER_H_
9 #define LOGGER_H_
11 #include<string>
12 #include<fstream>
14 #include "Interfaces.h"
17 class ILogger {
18 public:
19 ILogger() {};
20 virtual ~ILogger() {};
21 virtual void log(string s);
22 virtual void logln(string s);
26 DeclareInterface(ILogger)
27 virtual void log(std::string s);
28 virtual void logln(std::string s);
29 EndInterface
31 class SimpleConsoleLogger : implements ILogger {
32 virtual void log(std::string s);
33 virtual void logln(std::string s);
36 class SimpleFileLogger : implements ILogger {
37 private:
38 std::string outfile;
39 std::ofstream myfile;
40 public:
41 SimpleFileLogger(std::string out_file);
43 virtual ~SimpleFileLogger();
44 virtual void log(std::string s);
45 virtual void logln(std::string s);
47 /* virtual void logln(string s) {
48 log(s);
49 log("\n");
52 virtual void log(string s) {
53 myfile << s;
57 virtual void log(void* buf, size_t bufsize){
58 string mybuf;
59 mybuf.length = bufsize;
60 memcpy(mybuf.ptr, buf, bufsize);
61 myfile.write(mybuf);
64 virtual void clear();
67 #endif /* LOGGER_H_ */