summaryrefslogtreecommitdiffstats
path: root/core/jni/android_util_Log.cpp
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:45 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:45 -0800
commitd83a98f4ce9cfa908f5c54bbd70f03eec07e7553 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /core/jni/android_util_Log.cpp
parent076357b8567458d4b6dfdcf839ef751634cd2bfb (diff)
downloadframeworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.zip
frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.tar.gz
frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.tar.bz2
auto import from //depot/cupcake/@135843
Diffstat (limited to 'core/jni/android_util_Log.cpp')
-rw-r--r--core/jni/android_util_Log.cpp161
1 files changed, 0 insertions, 161 deletions
diff --git a/core/jni/android_util_Log.cpp b/core/jni/android_util_Log.cpp
deleted file mode 100644
index 8316b03..0000000
--- a/core/jni/android_util_Log.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-/* //device/libs/android_runtime/android_util_Log.cpp
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
-
-#define LOG_NAMESPACE "log.tag."
-#define LOG_TAG "Log_println"
-
-#include <assert.h>
-#include <cutils/properties.h>
-#include <utils/Log.h>
-#include <utils/String8.h>
-
-#include "jni.h"
-#include "utils/misc.h"
-#include "android_runtime/AndroidRuntime.h"
-
-#define MIN(a,b) ((a<b)?a:b)
-
-namespace android {
-
-struct levels_t {
- jint verbose;
- jint debug;
- jint info;
- jint warn;
- jint error;
- jint assert;
-};
-static levels_t levels;
-
-static int toLevel(const char* value)
-{
- switch (value[0]) {
- case 'V': return levels.verbose;
- case 'D': return levels.debug;
- case 'I': return levels.info;
- case 'W': return levels.warn;
- case 'E': return levels.error;
- case 'A': return levels.assert;
- case 'S': return -1; // SUPPRESS
- }
- return levels.info;
-}
-
-static jboolean android_util_Log_isLoggable(JNIEnv* env, jobject clazz, jstring tag, jint level)
-{
-#ifndef HAVE_ANDROID_OS
- return false;
-#else /* HAVE_ANDROID_OS */
- int len;
- char key[PROPERTY_KEY_MAX];
- char buf[PROPERTY_VALUE_MAX];
-
- if (tag == NULL) {
- return false;
- }
-
- jboolean result = false;
-
- const char* chars = env->GetStringUTFChars(tag, NULL);
-
- if ((strlen(chars)+sizeof(LOG_NAMESPACE)) > PROPERTY_KEY_MAX) {
- jclass clazz = env->FindClass("java/lang/IllegalArgumentException");
- char buf2[200];
- snprintf(buf2, sizeof(buf2), "Log tag \"%s\" exceeds limit of %d characters\n",
- chars, PROPERTY_KEY_MAX - sizeof(LOG_NAMESPACE));
-
- // release the chars!
- env->ReleaseStringUTFChars(tag, chars);
-
- env->ThrowNew(clazz, buf2);
- return false;
- } else {
- strncpy(key, LOG_NAMESPACE, sizeof(LOG_NAMESPACE)-1);
- strcpy(key + sizeof(LOG_NAMESPACE) - 1, chars);
- }
-
- env->ReleaseStringUTFChars(tag, chars);
-
- len = property_get(key, buf, "");
- int logLevel = toLevel(buf);
- return (logLevel >= 0 && level >= logLevel) ? true : false;
-#endif /* HAVE_ANDROID_OS */
-}
-
-/*
- * In class android.util.Log:
- * public static native int println(int priority, String tag, String msg)
- */
-static jint android_util_Log_println(JNIEnv* env, jobject clazz,
- jint priority, jstring tagObj, jstring msgObj)
-{
- const char* tag = NULL;
- const char* msg = NULL;
-
- if (msgObj == NULL) {
- jclass npeClazz;
-
- npeClazz = env->FindClass("java/lang/NullPointerException");
- assert(npeClazz != NULL);
-
- env->ThrowNew(npeClazz, "println needs a message");
- return -1;
- }
-
- if (tagObj != NULL)
- tag = env->GetStringUTFChars(tagObj, NULL);
- msg = env->GetStringUTFChars(msgObj, NULL);
-
- int res = android_writeLog((android_LogPriority) priority, tag, msg);
-
- if (tag != NULL)
- env->ReleaseStringUTFChars(tagObj, tag);
- env->ReleaseStringUTFChars(msgObj, msg);
-
- return res;
-}
-
-/*
- * JNI registration.
- */
-static JNINativeMethod gMethods[] = {
- /* name, signature, funcPtr */
- { "isLoggable", "(Ljava/lang/String;I)Z", (void*) android_util_Log_isLoggable },
- { "println", "(ILjava/lang/String;Ljava/lang/String;)I", (void*) android_util_Log_println },
-};
-
-int register_android_util_Log(JNIEnv* env)
-{
- jclass clazz = env->FindClass("android/util/Log");
-
- if (clazz == NULL) {
- LOGE("Can't find android/util/Log");
- return -1;
- }
-
- levels.verbose = env->GetStaticIntField(clazz, env->GetStaticFieldID(clazz, "VERBOSE", "I"));
- levels.debug = env->GetStaticIntField(clazz, env->GetStaticFieldID(clazz, "DEBUG", "I"));
- levels.info = env->GetStaticIntField(clazz, env->GetStaticFieldID(clazz, "INFO", "I"));
- levels.warn = env->GetStaticIntField(clazz, env->GetStaticFieldID(clazz, "WARN", "I"));
- levels.error = env->GetStaticIntField(clazz, env->GetStaticFieldID(clazz, "ERROR", "I"));
- levels.assert = env->GetStaticIntField(clazz, env->GetStaticFieldID(clazz, "ASSERT", "I"));
-
- return AndroidRuntime::registerNativeMethods(env, "android/util/Log", gMethods, NELEM(gMethods));
-}
-
-}; // namespace android
-