const char * const config_domain_type_kernel = "KERNEL";
const char * const config_domain_type_ust = "UST";
const char * const config_domain_type_jul = "JUL";
+const char * const config_domain_type_log4j = "LOG4J";
const char * const config_buffer_type_per_pid = "PER_PID";
const char * const config_buffer_type_per_uid = "PER_UID";
ret = LTTNG_DOMAIN_UST;
} else if (!strcmp((char *) domain, config_domain_type_jul)) {
ret = LTTNG_DOMAIN_JUL;
+ } else if (!strcmp((char *) domain, config_domain_type_log4j)) {
+ ret = LTTNG_DOMAIN_LOG4J;
} else {
goto error;
}
struct lttng_domain *kernel_domain,
struct lttng_domain *ust_domain,
struct lttng_domain *jul_domain,
+ struct lttng_domain *log4j_domain,
xmlNodePtr output_node,
uint64_t live_timer_interval)
{
int i;
struct lttng_domain *domain;
struct lttng_domain *domains[] =
- { kernel_domain, ust_domain, jul_domain };
+ { kernel_domain, ust_domain, jul_domain, log4j_domain};
/* network destination */
if (live_timer_interval && live_timer_interval != UINT64_MAX) {
struct lttng_domain *kernel_domain = NULL;
struct lttng_domain *ust_domain = NULL;
struct lttng_domain *jul_domain = NULL;
+ struct lttng_domain *log4j_domain = NULL;
for (node = xmlFirstElementChild(session_node); node;
node = xmlNextElementSibling(node)) {
}
jul_domain = domain;
break;
+ case LTTNG_DOMAIN_LOG4J:
+ if (log4j_domain) {
+ /* Same domain seen twice, invalid! */
+ goto domain_init_error;
+ }
+ log4j_domain = domain;
+ break;
default:
WARN("Invalid domain type");
goto domain_init_error;
} else if (live_timer_interval &&
live_timer_interval != UINT64_MAX) {
ret = create_session(name, kernel_domain, ust_domain, jul_domain,
- output_node, live_timer_interval);
+ log4j_domain, output_node, live_timer_interval);
} else {
/* regular session */
ret = create_session(name, kernel_domain, ust_domain, jul_domain,
- output_node, UINT64_MAX);
+ log4j_domain, output_node, UINT64_MAX);
}
if (ret) {
goto error;
free(kernel_domain);
free(ust_domain);
free(jul_domain);
+ free(log4j_domain);
free(name);
return ret;
}