/*
 * SPDX-License-Identifier: LGPL-2.1-only
 *
 * Copyright (C) 2022 EfficiOS Inc.
 */

#undef LTTNG_UST_TRACEPOINT_PROVIDER
#define LTTNG_UST_TRACEPOINT_PROVIDER lttng_log4j2

#if !defined(_TRACEPOINT_LTTNG_UST_LOG4J2_H) || defined(LTTNG_UST_TRACEPOINT_HEADER_MULTI_READ)
#define _TRACEPOINT_LTTNG_UST_LOG4J2_H

#include <lttng/tracepoint.h>

/*
 * Tracepoint used by Java applications using the log4j 2.x convention for loglevels.
 */
LTTNG_UST_TRACEPOINT_EVENT(lttng_log4j2, event,
	LTTNG_UST_TP_ARGS(
		const char *, msg,
		const char *, logger_name,
		const char *, class_name,
		const char *, method_name,
		const char *, file_name,
		int, line_number,
		long, timestamp,
		int, log_level,
		const char *, thread_name),
	LTTNG_UST_TP_FIELDS(
		lttng_ust_field_string(msg, msg)
		lttng_ust_field_string(logger_name, logger_name)
		lttng_ust_field_string(class_name, class_name)
		lttng_ust_field_string(method_name, method_name)
		lttng_ust_field_string(filename, file_name)
		lttng_ust_field_integer(int, line_number, line_number)
		lttng_ust_field_integer(long, timestamp, timestamp)
		lttng_ust_field_integer(int, int_loglevel, log_level)
		lttng_ust_field_string(thread_name, thread_name)
	)
)

#endif /* _TRACEPOINT_LTTNG_UST_LOG4J2_H */

#undef LTTNG_UST_TRACEPOINT_INCLUDE
#define LTTNG_UST_TRACEPOINT_INCLUDE "./lttng_ust_log4j2_tp.h"

/* This part must be outside protection */
#include <lttng/tracepoint-event.h>
