11 #ifndef __UT_ErrorLog__
12 #define __UT_ErrorLog__
52 virtual bool filterError(
int verbosity,
54 const char *prefix) = 0;
64 return filterError(verbosity, message, prefix);
68 static void registerCallback(ErrorCallback *err);
79 {
return myLogFileName; }
83 myLogFileName.harden(name);
84 myLogFileName.expandVariables();
89 {
return myMinLevel; }
94 myMinConsoleLevel =
level;
97 {
return myMinConsoleLevel; }
101 myMinConsoleLevel =
level;
105 {
return myDoLogging; }
111 {
return myLogToConsole; }
115 myLogToConsole =
log;
118 {
return myForceConsoleColor; }
122 myForceConsoleColor =
log; }
124 {
return myLogToSystem; }
144 myAppendDate = append_date;
150 myErrorLogTimes.clear();
162 myHeaderCallback = callback;
166 typedef int (*MantraVerboseCallback)();
167 typedef int (*MantraColorCallback)();
168 typedef bool (*MantraTimestampCallback)();
175 static void setMantraVerboseLevel(
int level);
176 static int getMantraVerboseLevel();
177 static bool isMantraVerbose(
int level);
178 static void setMantraElapsedTime(
bool enable);
179 static bool mantraElapsedTime();
183 static void setMantraVerboseCallback(MantraVerboseCallback cb);
184 static void setMantraColorCallback(MantraColorCallback cb);
185 static void setMantraTimestampCallback(MantraTimestampCallback cb);
187 static int mantraPrintf(
int level,
const char *msg, ...)
189 static
int mantraWarning(const
char *msg, ...)
191 static
int mantraError(const
char *msg, ...)
192 SYS_PRINTF_CHECK_ATTRIBUTE(1,2);
196 template <typename... Args>
197 static
size_t format(
int lev, const
char *fmt, const Args &...
args)
199 if (!isMantraVerbose(lev))
203 return mantraPrintf(lev,
"%s", buf.
buffer());
205 template <
typename... Args>
208 if (!isMantraVerbose(1))
212 return mantraWarning(
"%s", buf.
buffer());
214 template <
typename... Args>
215 static size_t error(
const char *fmt,
const Args &...
args)
219 return mantraError(
"%s", buf.
buffer());
222 template <
typename... Args>
226 if (!isMantraVerbose(lev))
230 return mantraPrintfOnce(lev,
"%s", buf.
buffer());
232 template <
typename... Args>
235 if (!isMantraVerbose(1))
239 return mantraWarningOnce(
"%s", buf.
buffer());
241 template <
typename... Args>
246 return mantraErrorOnce(
"%s", buf.
buffer());
251 static int mantraPrintfOnce(
int level,
const char *msg, ...)
253 static
int mantraWarningOnce(const
char *msg, ...)
255 static
int mantraErrorOnce(const
char *msg, ...)
256 SYS_PRINTF_CHECK_ATTRIBUTE(1,2);
260 static
void clearMantraOnceErrors();
262 static
void printErrorToConsole(const
char *msg,
263 const
char *prefix = "",
264 bool enable_color = false);
265 static
void printWarningToConsole(const
char *msg,
266 const
char *prefix = "",
267 bool enable_color = false);
268 static
void printMessageToConsole(const
char *msg,
269 const
char *prefix = "",
270 bool enable_color = false);
275 int myMinConsoleLevel;
280 bool myForceConsoleColor;
284 HeaderCallback myHeaderCallback;
287 time_t myLastErrorTime;
GLuint GLsizei const GLchar * message
typedef int(APIENTRYP RE_PFNGLXSWAPINTERVALSGIPROC)(int)
GLenum GLuint GLenum GLsizei const GLchar * buf
virtual bool filterMessage(int verbosity, int error_level, const char *message, const char *prefix)
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)
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)
GLint GLint GLsizei GLint GLenum format
void setMaxLogSize(int64 size)
bool getAppendDate() const
void setPrefix(const UT_StringHolder &prefix)
GLuint const GLchar * name
std::function< T > UT_Function
bool getLogToConsole() const
size_t format(const char *fmt, const Args &...args)
LeafData & operator=(const LeafData &)=delete
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)
bool getDoLogging() const
UT_Function< void(UT_WorkBuffer &)> HeaderCallback