1 /*********************************
2 ** Tsunagari Tile Engine **
4 ** Copyright 2011-2012 OmegaSDG **
5 *********************************/
9 #include <Gosu/Timing.hpp>
17 #include "os-windows.h"
20 static verbosity_t verb
= V_NORMAL
;
22 static unsigned long startTime
;
24 static std::string
& chomp(std::string
& str
)
26 std::string::size_type notwhite
= str
.find_last_not_of(" \t\n\r");
27 str
.erase(notwhite
+ 1);
31 static std::string
ts()
33 unsigned long now
= Gosu::milliseconds();
35 std::ostringstream ts
;
38 ts
<< (now
- startTime
) / (long double)1000.0;
39 return "[" + ts
.str() + "] ";
44 startTime
= Gosu::milliseconds();
48 void Log::setVerbosity(verbosity_t v
)
53 void Log::info(std::string domain
, std::string msg
)
55 std::string str
= ts() + "Info [" + domain
+ "] - " + chomp(msg
);
57 std::cout
<< str
<< std::endl
;
60 void Log::err(std::string domain
, std::string msg
)
62 std::string str
= ts() + "Error [" + domain
+ "] - " + chomp(msg
);
64 PyErr_SetString(PyExc_RuntimeError
, str
.c_str());
65 boost::python::throw_error_already_set();
69 std::cerr
<< str
<< std::endl
;
71 wMessageBox("Tsunagari - Error", str
);
77 void Log::fatal(std::string domain
, std::string msg
)
79 std::string str
= ts() + "Fatal [" + domain
+ "] - " + chomp(msg
);
81 PyErr_SetString(PyExc_RuntimeError
, str
.c_str());
82 boost::python::throw_error_already_set();
85 std::cerr
<< str
<< std::endl
;
87 wMessageBox("Tsunagari - Fatal", str
);
92 void Log::reportVerbosityOnStartup()
94 std::string verbString
;
95 switch (conf
.verbosity
)
101 verbString
= "NORMAL";
104 verbString
= "VERBOSE";
107 std::cout
<< ts() << "Reporting engine messages in " << verbString
108 << " mode." << std::endl
;
111 static void pythonLogInfo(std::string msg
)
113 Log::info("Script", msg
);
118 using namespace boost::python
;
120 pythonAddFunction("log", pythonLogInfo
);