Log.h revision 10447
110447Snilay@cs.wisc.edu#ifndef __LOG_H__
210447Snilay@cs.wisc.edu#define __LOG_H__
310447Snilay@cs.wisc.edu
410447Snilay@cs.wisc.edu#include <cstdio>
510447Snilay@cs.wisc.edu#include <iostream>
610447Snilay@cs.wisc.edu#include <fstream>
710447Snilay@cs.wisc.edu
810447Snilay@cs.wisc.edu#include "String.h"
910447Snilay@cs.wisc.edu
1010447Snilay@cs.wisc.edu#ifndef LIBUTIL_IS_LOG
1110447Snilay@cs.wisc.edu#define LIBUTIL_IS_LOG false
1210447Snilay@cs.wisc.edu#endif
1310447Snilay@cs.wisc.edu
1410447Snilay@cs.wisc.edunamespace LibUtil
1510447Snilay@cs.wisc.edu{
1610447Snilay@cs.wisc.edu    using std::cerr;
1710447Snilay@cs.wisc.edu
1810447Snilay@cs.wisc.edu    class Log
1910447Snilay@cs.wisc.edu    {
2010447Snilay@cs.wisc.edu        public:
2110447Snilay@cs.wisc.edu            static void allocate(const String& log_file_name_);
2210447Snilay@cs.wisc.edu            static void release();
2310447Snilay@cs.wisc.edu
2410447Snilay@cs.wisc.edu            static void print(const String& str_);
2510447Snilay@cs.wisc.edu            static void print(std::ostream& stream_, const String& str_);
2610447Snilay@cs.wisc.edu            static void printLine(const String& str_);
2710447Snilay@cs.wisc.edu            static void printLine(std::ostream& stream_, const String& str_);
2810447Snilay@cs.wisc.edu
2910447Snilay@cs.wisc.edu        protected:
3010447Snilay@cs.wisc.edu            static Log* msSingleton;
3110447Snilay@cs.wisc.edu            static const bool msIsLog;
3210447Snilay@cs.wisc.edu
3310447Snilay@cs.wisc.edu        protected:
3410447Snilay@cs.wisc.edu            Log(const String& log_file_name_);
3510447Snilay@cs.wisc.edu            ~Log();
3610447Snilay@cs.wisc.edu
3710447Snilay@cs.wisc.edu        protected:
3810447Snilay@cs.wisc.edu            std::ofstream ofs;
3910447Snilay@cs.wisc.edu    };
4010447Snilay@cs.wisc.edu}
4110447Snilay@cs.wisc.edu
4210447Snilay@cs.wisc.edu#endif // __LOG_H__
4310447Snilay@cs.wisc.edu
44