Some fixes and logs.
[dcpomatic.git] / src / lib / log.cc
index 7f1eea20634f8cba480d8d6884765f7e1be14268..7459700eacd43b783da9b61673866f8535c929b4 100644 (file)
@@ -28,7 +28,7 @@
 using namespace std;
 
 Log::Log ()
-       : _level (VERBOSE)
+       : _level (STANDARD)
 {
 
 }
@@ -42,7 +42,7 @@ Log::log (string m, Level l)
        if (l > _level) {
                return;
        }
-       
+
        time_t t;
        time (&t);
        string a = ctime (&t);
@@ -52,6 +52,23 @@ Log::log (string m, Level l)
        do_log (s.str ());
 }
 
+void
+Log::microsecond_log (string m, Level l)
+{
+       boost::mutex::scoped_lock lm (_mutex);
+
+       if (l > _level) {
+               return;
+       }
+
+       struct timeval tv;
+       gettimeofday (&tv, 0);
+
+       stringstream s;
+       s << tv.tv_sec << ":" << tv.tv_usec << " " << m;
+       do_log (s.str ());
+}      
+
 void
 Log::set_level (Level l)
 {
@@ -59,6 +76,19 @@ Log::set_level (Level l)
        _level = l;
 }
 
+void
+Log::set_level (string l)
+{
+       if (l == "verbose") {
+               set_level (VERBOSE);
+               return;
+       } else if (l == "timing") {
+               set_level (TIMING);
+               return;
+       }
+
+       set_level (STANDARD);
+}
 
 /** @param file Filename to write log to */
 FileLog::FileLog (string file)