24{
25
26 size_t printed = 0;
27 int retval;
28 const char *outp;
29 char obuf[TRACE_USER_MSGMAX];
30
31 if ((insert && (printed = strlen(insert))) || nargs)
32 {
33
34
35 if (printed) {
36 retval = snprintf(obuf,sizeof(obuf),"%s ",insert );
37 printed = TRACE_SNPRINTED(retval,sizeof(obuf));
38 }
39 if (nargs) {
40 retval = vsnprintf(&(obuf[printed]), sizeof(obuf) - printed, msg, ap);
41 printed += TRACE_SNPRINTED(retval,sizeof(obuf)-printed);
42 } else {
43
44
45 retval = snprintf( &(obuf[printed]), sizeof(obuf)-printed, "%s", msg );
46 printed += TRACE_SNPRINTED(retval,sizeof(obuf)-printed);
47 }
48 if (obuf[printed-1] == '\n')
49 obuf[printed-1] = '\0';
50 outp = obuf;
51 } else {
52 if (msg[strlen(msg)-1] == '\n') {
53 retval = snprintf( obuf, sizeof(obuf), "%s", msg );
54 printed = TRACE_SNPRINTED(retval,sizeof(obuf));
55 if (obuf[printed-1] == '\n')
56 obuf[printed-1] = '\0';
57 outp = obuf;
58 } else
59 outp = msg;
60 }
61
63 reinterpret_cast<char*>(idx2namsPtr(TID)),
64 file, line, function, DEBUG_FORCED );
65
66
67 if (lvl < TLVL_DEBUG) {
68
70
71
72 ers::log( ers::InternalMessage(lc,outp) );
73 } else {
74 ers::debug( ers::InternalMessage(lc,outp),lvl-TLVL_DEBUG );
75 }
76}