- %%L: line number where the log event was raised (LOG4J compatible)
- %%M: function name (LOG4J compatible -- called method name here of course).
- - %%b: full backtrace (Called %%throwable in LOG4J).
- Defined only under windows or when using the GNU libc because backtrace() is not defined
- elsewhere, and we only have a fallback for windows boxes, not mac ones for example.
- - %%B: short backtrace (only the first line of the %%b).
- Called %%throwable{short} in LOG4J; defined where %%b is.
-
- %%d: date (UNIX-like epoch)
- %%r: application age (time elapsed since the beginning of the application)
case 'M': /* method (ie, function) name; LOG4J compliant */
show_string(ev->functionName);
break;
- case 'b': /* backtrace; called %throwable in LOG4J */
- case 'B': /* short backtrace; called %throwable{short} in LOG4J */
-// TODO, backtrace
-#if 0 && HAVE_BACKTRACE && HAVE_EXECINFO_H && HAVE_POPEN && defined(ADDR2LINE)
- {
- xbt_ex_t e("");
-
- e.used = backtrace((void **) e.bt, XBT_BACKTRACE_SIZE);
- e.bt_strings = NULL;
- xbt_ex_setup_backtrace(&e);
- if (*q == 'B') {
- show_string(e.bt_strings[1] + 8);
- } else {
- xbt_strbuff_t buff = xbt_strbuff_new();
- int i;
- xbt_strbuff_append(buff, e.bt_strings[1] + 8);
- for (i = 2; i < e.used; i++) {
- xbt_strbuff_append(buff, "\n");
- xbt_strbuff_append(buff, e.bt_strings[i] + 8);
- }
- show_string(buff->data);
- xbt_strbuff_free(buff);
- }
- }
-#else
- show_string("(no backtrace on this arch)");
-#endif
- break;
case 'd': /* date; LOG4J compliant */
show_double(surf_get_clock());
break;