X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Flog.cc;h=a0b031589bf1836080c98c170c2fde1860df8dfe;hb=a79d78d8bb6d51f6662f1f63b9f8fd19e1a0c5f1;hp=650384bc7726986ff97800613f0ef09f2a41346f;hpb=3781be4da4601176d7bb954f9cc65621d75e7344;p=dcpomatic.git diff --git a/src/lib/log.cc b/src/lib/log.cc index 650384bc7..a0b031589 100644 --- a/src/lib/log.cc +++ b/src/lib/log.cc @@ -21,14 +21,17 @@ * @brief A very simple logging class. */ -#include #include +#include #include "log.h" +#include "cross.h" + +#include "i18n.h" using namespace std; Log::Log () - : _level (VERBOSE) + : _level (STANDARD) { } @@ -48,7 +51,7 @@ Log::log (string m, Level l) string a = ctime (&t); stringstream s; - s << a.substr (0, a.length() - 1) << ": " << m; + s << a.substr (0, a.length() - 1) << N_(": ") << m; do_log (s.str ()); } @@ -65,7 +68,7 @@ Log::microsecond_log (string m, Level l) gettimeofday (&tv, 0); stringstream s; - s << tv.tv_sec << ":" << tv.tv_usec << " " << m; + s << tv.tv_sec << N_(":") << tv.tv_usec << N_(" ") << m; do_log (s.str ()); } @@ -76,9 +79,22 @@ Log::set_level (Level l) _level = l; } +void +Log::set_level (string l) +{ + if (l == N_("verbose")) { + set_level (VERBOSE); + return; + } else if (l == N_("timing")) { + set_level (TIMING); + return; + } + + set_level (STANDARD); +} /** @param file Filename to write log to */ -FileLog::FileLog (string file) +FileLog::FileLog (boost::filesystem::path file) : _file (file) { @@ -87,7 +103,13 @@ FileLog::FileLog (string file) void FileLog::do_log (string m) { - ofstream f (_file.c_str(), fstream::app); - f << m << "\n"; + FILE* f = fopen_boost (_file, "a"); + if (!f) { + cout << "(could not log to " << _file.string() << "): " << m << "\n"; + return; + } + + fprintf (f, "%s\n", m.c_str ()); + fclose (f); }