Commit | Line | Data |
---|---|---|
43e5396b DG |
1 | /* |
2 | * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | |
3 | * | |
4 | * This library is free software; you can redistribute it and/or | |
5 | * modify it under the terms of the GNU Lesser General Public | |
6 | * License as published by the Free Software Foundation; only | |
7 | * version 2.1 of the License. | |
8 | * | |
9 | * This library is distributed in the hope that it will be useful, | |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
12 | * Lesser General Public License for more details. | |
13 | * | |
14 | * You should have received a copy of the GNU Lesser General Public | |
15 | * License along with this library; if not, write to the Free Software | |
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
17 | */ | |
18 | ||
501f6777 | 19 | #include "org_lttng_ust_agent_log4j_LTTngLogAppender.h" |
43e5396b DG |
20 | |
21 | #define TRACEPOINT_DEFINE | |
22 | #define TRACEPOINT_CREATE_PROBES | |
501f6777 | 23 | #include "lttng_ust_log4j.h" |
43e5396b | 24 | |
9aabed2d DG |
25 | /* |
26 | * System tracepoint meaning only root agent will fire this. | |
27 | */ | |
501f6777 | 28 | JNIEXPORT void JNICALL Java_org_lttng_ust_agent_log4j_LTTngLogAppender_tracepointS(JNIEnv *env, |
43e5396b DG |
29 | jobject jobj, |
30 | jstring msg, | |
31 | jstring logger_name, | |
32 | jstring class_name, | |
33 | jstring method_name, | |
501f6777 CB |
34 | jstring file_name, |
35 | jint line_number, | |
36 | jlong timestamp, | |
37 | jint loglevel, | |
38 | jstring thread_name) | |
43e5396b DG |
39 | { |
40 | jboolean iscopy; | |
41 | const char *msg_cstr = (*env)->GetStringUTFChars(env, msg, &iscopy); | |
42 | const char *logger_name_cstr = (*env)->GetStringUTFChars(env, logger_name, &iscopy); | |
43 | const char *class_name_cstr = (*env)->GetStringUTFChars(env, class_name, &iscopy); | |
44 | const char *method_name_cstr = (*env)->GetStringUTFChars(env, method_name, &iscopy); | |
501f6777 CB |
45 | const char *file_name_cstr = (*env)->GetStringUTFChars(env, file_name, &iscopy); |
46 | const char *thread_name_cstr = (*env)->GetStringUTFChars(env, thread_name, &iscopy); | |
43e5396b | 47 | |
501f6777 CB |
48 | tracepoint(lttng_log4j, sys_event, msg_cstr, logger_name_cstr, |
49 | class_name_cstr, method_name_cstr, file_name_cstr, | |
50 | line_number, timestamp, loglevel, thread_name_cstr); | |
9aabed2d DG |
51 | |
52 | (*env)->ReleaseStringUTFChars(env, msg, msg_cstr); | |
53 | (*env)->ReleaseStringUTFChars(env, logger_name, logger_name_cstr); | |
54 | (*env)->ReleaseStringUTFChars(env, class_name, class_name_cstr); | |
55 | (*env)->ReleaseStringUTFChars(env, method_name, method_name_cstr); | |
501f6777 CB |
56 | (*env)->ReleaseStringUTFChars(env, file_name, file_name_cstr); |
57 | (*env)->ReleaseStringUTFChars(env, thread_name, thread_name_cstr); | |
9aabed2d DG |
58 | } |
59 | ||
60 | /* | |
61 | * User tracepoint meaning only a non root agent will fire this. | |
62 | */ | |
501f6777 CB |
63 | JNIEXPORT void JNICALL Java_org_lttng_ust_agent_log4j_LTTngLogAppender_tracepointU(JNIEnv *env, |
64 | jobject jobj, | |
65 | jstring msg, | |
66 | jstring logger_name, | |
67 | jstring class_name, | |
68 | jstring method_name, | |
69 | jstring file_name, | |
70 | jint line_number, | |
71 | jlong timestamp, | |
72 | jint loglevel, | |
73 | jstring thread_name) | |
9aabed2d DG |
74 | { |
75 | jboolean iscopy; | |
76 | const char *msg_cstr = (*env)->GetStringUTFChars(env, msg, &iscopy); | |
77 | const char *logger_name_cstr = (*env)->GetStringUTFChars(env, logger_name, &iscopy); | |
78 | const char *class_name_cstr = (*env)->GetStringUTFChars(env, class_name, &iscopy); | |
79 | const char *method_name_cstr = (*env)->GetStringUTFChars(env, method_name, &iscopy); | |
501f6777 CB |
80 | const char *file_name_cstr = (*env)->GetStringUTFChars(env, file_name, &iscopy); |
81 | const char *thread_name_cstr = (*env)->GetStringUTFChars(env, thread_name, &iscopy); | |
9aabed2d | 82 | |
501f6777 CB |
83 | tracepoint(lttng_log4j, user_event, msg_cstr, logger_name_cstr, |
84 | class_name_cstr, method_name_cstr, file_name_cstr, | |
85 | line_number, timestamp, loglevel, thread_name_cstr); | |
43e5396b DG |
86 | |
87 | (*env)->ReleaseStringUTFChars(env, msg, msg_cstr); | |
88 | (*env)->ReleaseStringUTFChars(env, logger_name, logger_name_cstr); | |
89 | (*env)->ReleaseStringUTFChars(env, class_name, class_name_cstr); | |
90 | (*env)->ReleaseStringUTFChars(env, method_name, method_name_cstr); | |
501f6777 CB |
91 | (*env)->ReleaseStringUTFChars(env, file_name, file_name_cstr); |
92 | (*env)->ReleaseStringUTFChars(env, thread_name, thread_name_cstr); | |
43e5396b | 93 | } |