MINOR: trace: support a default callback for the source

It becomes apparent that most traces will use a single trace pretty
print callback, so let's allow the trace source to declare a default
one so that it can be omitted from trace calls, and will be used if
no other one is specified.
This commit is contained in:
Willy Tarreau 2019-08-28 07:03:58 +02:00
parent 8f24023ba0
commit 3da0026d25
2 changed files with 6 additions and 0 deletions

View File

@ -129,6 +129,9 @@ struct trace_source {
const char *desc;
const struct trace_event *known_events;
struct list source_link; // element in list of known trace sources
void (*default_cb)(enum trace_level level, uint64_t mask,
const struct trace_source *src, const struct ist where,
const void *a1, const void *a2, const void *a3, const void *a4);
uint32_t arg_def; // argument definitions (sum of TRC_ARG{1..4}_*)
const struct trace_lockon_arg *lockon_args; // must be 4 entries if not NULL
/* trace configuration, adjusted by "trace <module>" on CLI */

View File

@ -184,6 +184,9 @@ void __trace(enum trace_level level, uint64_t mask, struct trace_source *src, co
}
line[2] = ist("] ");
if (!cb)
cb = src->default_cb;
if (cb) {
/* decode function passed, we want to pre-fill the
* buffer with the message and let the decode function