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