Home | History | Annotate | Download | only in liblog
      1 /*
      2 ** Copyright 2013-2014, The Android Open Source Project
      3 **
      4 ** Licensed under the Apache License, Version 2.0 (the "License");
      5 ** you may not use this file except in compliance with the License.
      6 ** You may obtain a copy of the License at
      7 **
      8 **     http://www.apache.org/licenses/LICENSE-2.0
      9 **
     10 ** Unless required by applicable law or agreed to in writing, software
     11 ** distributed under the License is distributed on an "AS IS" BASIS,
     12 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 ** See the License for the specific language governing permissions and
     14 ** limitations under the License.
     15 */
     16 
     17 #include <string.h>
     18 
     19 #include <log/log.h>
     20 #include <log/logger.h>
     21 
     22 #include "log_portability.h"
     23 
     24 /* In the future, we would like to make this list extensible */
     25 static const char *LOG_NAME[LOG_ID_MAX] = {
     26     [LOG_ID_MAIN] = "main",
     27     [LOG_ID_RADIO] = "radio",
     28     [LOG_ID_EVENTS] = "events",
     29     [LOG_ID_SYSTEM] = "system",
     30     [LOG_ID_CRASH] = "crash",
     31     [LOG_ID_SECURITY] = "security",
     32     [LOG_ID_KERNEL] = "kernel",
     33 };
     34 
     35 LIBLOG_ABI_PUBLIC const char *android_log_id_to_name(log_id_t log_id)
     36 {
     37     if (log_id >= LOG_ID_MAX) {
     38         log_id = LOG_ID_MAIN;
     39     }
     40     return LOG_NAME[log_id];
     41 }
     42 
     43 LIBLOG_ABI_PUBLIC log_id_t android_name_to_log_id(const char *logName)
     44 {
     45     const char *b;
     46     int ret;
     47 
     48     if (!logName) {
     49         return -1; /* NB: log_id_t is unsigned */
     50     }
     51     b = strrchr(logName, '/');
     52     if (!b) {
     53         b = logName;
     54     } else {
     55         ++b;
     56     }
     57 
     58     for(ret = LOG_ID_MIN; ret < LOG_ID_MAX; ++ret) {
     59         const char *l = LOG_NAME[ret];
     60         if (l && !strcmp(b, l)) {
     61             return ret;
     62         }
     63     }
     64     return -1;   /* should never happen */
     65 }
     66