X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=liblttng-ust-java-agent%2Fjni%2Flog4j%2Flttng_ust_log4j2.c;fp=liblttng-ust-java-agent%2Fjni%2Flog4j%2Flttng_ust_log4j2.c;h=b3aba682ab0c7a52adfa8752d8a0b6f737e95a6e;hb=b187a6b350f0c7f27d179cf898e8e85d82ec8dbf;hp=68616bf4982bec37641516a792ba1f5881d1fa26;hpb=9961f6be6fbfa34fafcce7dae1ae00bb932488ea;p=deliverable%2Flttng-ust.git diff --git a/liblttng-ust-java-agent/jni/log4j/lttng_ust_log4j2.c b/liblttng-ust-java-agent/jni/log4j/lttng_ust_log4j2.c index 68616bf4..b3aba682 100644 --- a/liblttng-ust-java-agent/jni/log4j/lttng_ust_log4j2.c +++ b/liblttng-ust-java-agent/jni/log4j/lttng_ust_log4j2.c @@ -40,12 +40,34 @@ enum loglevel_log4j2 { LOGLEVEL_LOG4J2_ALL = INT32_MAX, }; +/* + * Convert a custom Log4j 2.x loglevel to its equivalent 1.x standard loglevel. + */ +static jint loglevel_custom_2x_to_standard_1x(jint loglevel) +{ + if (loglevel <= LOGLEVEL_LOG4J2_OFF) { + return LOGLEVEL_LOG4J1_OFF; + } else if (loglevel <= LOGLEVEL_LOG4J2_FATAL) { + return LOGLEVEL_LOG4J1_FATAL; + } else if (loglevel <= LOGLEVEL_LOG4J2_ERROR) { + return LOGLEVEL_LOG4J1_ERROR; + } else if (loglevel <= LOGLEVEL_LOG4J2_WARN) { + return LOGLEVEL_LOG4J1_WARN; + } else if (loglevel <= LOGLEVEL_LOG4J2_INFO) { + return LOGLEVEL_LOG4J1_INFO; + } else if (loglevel <= LOGLEVEL_LOG4J2_DEBUG) { + return LOGLEVEL_LOG4J1_DEBUG; + } else if (loglevel <= LOGLEVEL_LOG4J2_TRACE) { + return LOGLEVEL_LOG4J1_TRACE; + } else { + return LOGLEVEL_LOG4J1_ALL; + } +} + /* * The integer values of the loglevels has obviously changed in log4j2, * translate them to the values of log4j1 since they are exposed in the API of * lttng-tools. - * - * Custom loglevels might pose a problem when using ranges. */ static jint loglevel_2x_to_1x(jint loglevel) { @@ -68,7 +90,7 @@ static jint loglevel_2x_to_1x(jint loglevel) return LOGLEVEL_LOG4J1_ALL; default: /* Handle custom loglevels. */ - return loglevel; + return loglevel_custom_2x_to_standard_1x(loglevel); } }