11 #ifndef __UT_ErrorLog__
12 #define __UT_ErrorLog__
47 virtual bool filterError(
int level,
49 const char *prefix) = 0;
52 static void registerCallback(ErrorCallback *err);
61 {
return myLogFileName; }
65 myLogFileName.harden(name);
66 myLogFileName.expandVariables();
71 {
return myMinLevel; }
76 myMinConsoleLevel =
level;
79 {
return myMinConsoleLevel; }
83 myMinConsoleLevel =
level;
87 {
return myDoLogging; }
93 {
return myLogToConsole; }
100 {
return myForceConsoleColor; }
104 myForceConsoleColor =
log; }
106 {
return myLogToSystem; }
126 myAppendDate = append_date;
132 myErrorLogTimes.clear();
144 myHeaderCallback = callback;
148 typedef int (*MantraVerboseCallback)();
149 typedef int (*MantraColorCallback)();
150 typedef bool (*MantraTimestampCallback)();
157 static void setMantraVerboseLevel(
int level);
158 static int getMantraVerboseLevel();
159 static bool isMantraVerbose(
int level);
160 static void setMantraElapsedTime(
bool enable);
161 static bool mantraElapsedTime();
165 static void setMantraVerboseCallback(MantraVerboseCallback cb);
166 static void setMantraColorCallback(MantraColorCallback cb);
167 static void setMantraTimestampCallback(MantraTimestampCallback cb);
169 static int mantraPrintf(
int level,
const char *msg, ...)
171 static
int mantraWarning(
const char *msg, ...)
173 static
int mantraError(
const char *msg, ...)
174 SYS_PRINTF_CHECK_ATTRIBUTE(1,2);
178 template <typename... Args>
181 if (!isMantraVerbose(lev))
185 return mantraPrintf(lev,
"%s", buf.
buffer());
187 template <
typename... Args>
190 if (!isMantraVerbose(1))
194 return mantraWarning(
"%s", buf.
buffer());
196 template <
typename... Args>
197 static size_t error(
const char *fmt,
const Args &...
args)
201 return mantraError(
"%s", buf.
buffer());
204 template <
typename... Args>
208 if (!isMantraVerbose(lev))
212 return mantraPrintfOnce(lev,
"%s", buf.
buffer());
214 template <
typename... Args>
217 if (!isMantraVerbose(1))
221 return mantraWarningOnce(
"%s", buf.
buffer());
223 template <
typename... Args>
228 return mantraErrorOnce(
"%s", buf.
buffer());
233 static int mantraPrintfOnce(
int level,
const char *msg, ...)
235 static
int mantraWarningOnce(
const char *msg, ...)
237 static
int mantraErrorOnce(
const char *msg, ...)
238 SYS_PRINTF_CHECK_ATTRIBUTE(1,2);
242 static
void clearMantraOnceErrors();
244 static
void printErrorToConsole(
const char *msg,
245 const char *prefix = "",
246 bool enable_color = false);
247 static
void printWarningToConsole(
const char *msg,
248 const char *prefix = "",
249 bool enable_color = false);
250 static
void printMessageToConsole(
const char *msg,
251 const char *prefix = "",
252 bool enable_color = false);
257 int myMinConsoleLevel;
262 bool myForceConsoleColor;
266 HeaderCallback myHeaderCallback;
269 time_t myLastErrorTime;
GLuint GLsizei const GLchar * message
void setMinLevel(const int level)
void setForceConsoleColor(bool log)
void setLogToConsole(bool log)
SYS_FORCE_INLINE const char * buffer() const
UT_API UT_ErrorLog * UTgetErrorLog()
static size_t error(const char *fmt, const Args &...args)
GLuint const GLchar * name
void setLogToSystem(bool log)
void setDoLogging(bool log)
static size_t formatOnce(int lev, const char *fmt, const Args &...args)
void setAppendDate(bool append_date)
int getMinConsoleLevel() const
static size_t warningOnce(const char *fmt, const Args &...args)
const UT_String & getLogFileName() const
void setLogFileName(const UT_String &name)
static size_t warning(const char *fmt, const Args &...args)
static size_t errorOnce(const char *fmt, const Args &...args)
#define SYS_PRINTF_CHECK_ATTRIBUTE(string_index, first_to_check)
void setMaxLogSize(int64 size)
bool getAppendDate() const
typedef int(WINAPI *PFNWGLRELEASEPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer
void setPrefix(const UT_StringHolder &prefix)
bool getLogToConsole() const
GLenum GLuint GLenum GLsizei const GLchar * buf
GLint GLint GLsizei GLint GLenum format
size_t format(const char *fmt, const Args &...args)
bool getForceConsoleColor() const
void setHeaderCallback(HeaderCallback callback)
const UT_StringHolder & getPrefix() const
bool getLogToSystem() const
**If you just want to fire and args
void setMinConsoleLevel(const int level)
Functor to handle errors printed out using the mantra* methods.
OIIO_FORCEINLINE T log(const T &v)
std::function< void(UT_WorkBuffer &)> HeaderCallback
bool getDoLogging() const