X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=src%2Flib%2Flttng-ust-java-agent%2Fjni%2Flog4j%2Flttng_ust_log4j2.c;h=f01139ad473cd3c148d87cf67d98d1816612bef7;hb=b6659287e99e16eb826ceff27b17cc1058967693;hp=e89602f6a58685e4cf2c3ef33a1244c95f5da699;hpb=8063c7b022fdde06813466a21c0fcfc2d8206b56;p=lttng-ust.git diff --git a/src/lib/lttng-ust-java-agent/jni/log4j/lttng_ust_log4j2.c b/src/lib/lttng-ust-java-agent/jni/log4j/lttng_ust_log4j2.c index e89602f6..f01139ad 100644 --- a/src/lib/lttng-ust-java-agent/jni/log4j/lttng_ust_log4j2.c +++ b/src/lib/lttng-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); } }