d->deleted = 1;
}
+#ifdef EINA_LOG_BACKTRACE
+# define DISPLAY_BACKTRACE(File, Level) \
+ if (EINA_UNLIKELY(Level <= _backtrace_level)) { \
+ fprintf(File, "*** Backtrace ***\n"); \
+ EINA_BT(File); \
+ }
+#else
+# define DISPLAY_BACKTRACE(File, Level)
+#endif
+
static inline void
eina_log_print_unlocked(int domain,
Eina_Log_Level level,
if (EINA_UNLIKELY((unsigned int)domain >= _log_domains_count) ||
EINA_UNLIKELY(domain < 0))
{
- if (file && fnc && fmt)
+ DECLARE_LEVEL_NAME(level);
+ if (level > _log_level)
{
- fprintf(
- stderr,
- "CRI: %s:%d %s() eina_log_print() unknown domain %d, original message format '%s'\n",
- file,
- line,
- fnc,
- domain,
- fmt);
+ fprintf(stderr, "CRI<%u>:eina_log %s:%d %s() unknown log domain %d, "
+ "original message level was: %s\n", eina_log_pid_get(),
+ file, line, fnc, domain, name);
}
else
{
- fprintf(
- stderr,
- "CRI: eina_log_print() unknown domain %d, original message format '%s'\n",
- domain,
- fmt ? fmt : "");
+ if (file && fnc && fmt)
+ {
+ fprintf(stderr, "CRI<%u>:eina_log %s:%d %s() unknown log domain %d, "
+ "original message was: %s: '", eina_log_pid_get(),
+ file, line, fnc, domain, name);
+ vfprintf(stderr, fmt, args);
+ }
+ else
+ {
+ fprintf(stderr, "CRI<%u>:eina_log unknown log domain %d, original "
+ "message was: %s: '", eina_log_pid_get(), domain, name);
+ if (fmt)
+ vfprintf(stderr, fmt, args);
+ }
+ fputs("'\n", stderr);
}
- if (_abort_on_critical)
- abort();
+ DISPLAY_BACKTRACE(stderr, level);
+ if (EINA_UNLIKELY(_abort_on_critical))
+ abort();
return;
}
#ifdef EINA_SAFETY_CHECKS
if (EINA_UNLIKELY(d->deleted))
{
- fprintf(stderr,
- "ERR: eina_log_print() domain %d is deleted\n",
- domain);
+ if (level > d->level)
+ fprintf(stderr, "ERR<%u>:eina_log %s:%d %s() log domain %d was deleted\n",
+ eina_log_pid_get(), file, line, fnc, domain);
+ else
+ {
+ DECLARE_LEVEL_NAME(level);
+ fprintf(stderr, "ERR<%u>:eina_log %s:%d %s() log domain %d was "
+ "deleted, original message was: %s: '",
+ eina_log_pid_get(), file, line, fnc, domain, name);
+ vfprintf(stderr, fmt, args);
+ fputs("'\n", stderr);
+ }
+ DISPLAY_BACKTRACE(stderr, level);
+ if (EINA_UNLIKELY(_abort_on_critical) &&
+ EINA_UNLIKELY(level <= _abort_level_on_critical))
+ abort();
return;
}
#endif
}
-#ifdef EINA_LOG_BACKTRACE
-# define DISPLAY_BACKTRACE(File, Level) \
- if (EINA_UNLIKELY(Level <= _backtrace_level)) { \
- fprintf(File, "*** Backtrace ***\n"); \
- EINA_BT(File); \
- }
-#else
-# define DISPLAY_BACKTRACE(File, Level)
-#endif
-
EAPI void
eina_log_print_cb_stderr(const Eina_Log_Domain *d,
Eina_Log_Level level,