1b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu/****************************************************************************** 2b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 3b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * Copyright (C) 2012 Broadcom Corporation 4b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 5b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * Licensed under the Apache License, Version 2.0 (the "License"); 6b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * you may not use this file except in compliance with the License. 7b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * You may obtain a copy of the License at: 8b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 9b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * http://www.apache.org/licenses/LICENSE-2.0 10b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 11b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * Unless required by applicable law or agreed to in writing, software 12b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * distributed under the License is distributed on an "AS IS" BASIS, 13b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * See the License for the specific language governing permissions and 15b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * limitations under the License. 16b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 17b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu ******************************************************************************/ 18b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu 19b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu/****************************************************************************** 20b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 21b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * Override the ALOGD(), ALOGE(), and other logging macros from 22b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * /system/core/include/cutils/log.h 23b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 24b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu ******************************************************************************/ 25e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu#include "OverrideLog.h" 26e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu#include <cutils/properties.h> 27e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu#include "config.h" 28ad483f6fa0128f07fd2187bb9c46c2e3f7728cc5Evan Chu#define LOG_TAG "BrcmNfcJni" 29e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu 30e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu 31e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu/******************************************************************************* 32e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** 33e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** Function: initializeGlobalAppLogLevel 34e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** 35e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** Description: Initialize and get global logging level from .conf or 36e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** Android property nfc.app_log_level. The Android property 37e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** overrides .conf variable. 38e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** 39e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** Returns: Global log level: 40e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** BT_TRACE_LEVEL_NONE 0 * No trace messages to be generated 41e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** BT_TRACE_LEVEL_ERROR 1 * Error condition trace messages 42e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** BT_TRACE_LEVEL_WARNING 2 * Warning condition trace messages 43e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** BT_TRACE_LEVEL_API 3 * API traces 44e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** BT_TRACE_LEVEL_EVENT 4 * Debug messages for events 45e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** BT_TRACE_LEVEL_DEBUG 5 * Debug messages (general) 46e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** 47e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu*******************************************************************************/ 48e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chuunsigned char initializeGlobalAppLogLevel () 49e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu{ 50e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu unsigned long num = 0; 51e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu char valueStr [PROPERTY_VALUE_MAX] = {0}; 52e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu 53e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu GetNumValue (NAME_APPL_TRACE_LEVEL, &num, sizeof(num)); 54e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu appl_trace_level = (unsigned char) num; 55e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu 56e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu int len = property_get ("nfc.app_log_level", valueStr, ""); 57e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu if (len > 0) 58e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu { 59e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu //let Android property override .conf variable 60e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu sscanf (valueStr, "%lu", &num); 61e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu appl_trace_level = (unsigned char) num; 62e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu } 63ad483f6fa0128f07fd2187bb9c46c2e3f7728cc5Evan Chu 64ad483f6fa0128f07fd2187bb9c46c2e3f7728cc5Evan Chu //0xFF is a special value used by the stack to query the current 65ad483f6fa0128f07fd2187bb9c46c2e3f7728cc5Evan Chu //trace level; it does not change any trace level 66ad483f6fa0128f07fd2187bb9c46c2e3f7728cc5Evan Chu if (appl_trace_level == 0xFF) 67ad483f6fa0128f07fd2187bb9c46c2e3f7728cc5Evan Chu appl_trace_level = BT_TRACE_LEVEL_DEBUG; 68e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu ALOGD ("%s: level=%u", __FUNCTION__, appl_trace_level); 69e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu return appl_trace_level; 70e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu} 71