00001 #if defined(_DEBUG) || defined(DEBUG) 00002 00003 #include "debug.hpp" 00004 00005 00006 FILE* Log::handle; 00007 int Log::indent_count; 00008 00009 00011 00012 void 00013 Log::Write(const char* str) 00014 { 00015 EnsureOpen(); 00016 if (handle) { 00017 std::string s; 00018 for (int i = 0; i < indent_count; ++i) { 00019 s += " "; 00020 } 00021 s += str; 00022 s += "\n"; 00023 fwrite(s.c_str(), 1, s.length(), handle); 00024 fflush(handle); 00025 } 00026 } 00027 00029 00030 void 00031 Log::EnsureOpen() 00032 { 00033 if (!handle) { 00034 00035 #ifdef WIN32 00036 handle = fopen("C:/audiere_debug.log", "w"); 00037 #else 00038 std::string home(getenv("HOME")); 00039 handle = fopen((home + "/audiere_debug.log").c_str(), "w"); 00040 #endif 00041 00042 atexit(Close); 00043 } 00044 } 00045 00047 00048 void 00049 Log::Close() 00050 { 00051 fclose(handle); 00052 } 00053 00055 00056 00057 #endif