/*
- * Copyright (C) 2007 The Android Open Source Project
+ * DLOG
+ * Copyright (c) 2005-2008, The Android Open Source Project
+ * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * 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
+ * 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,
static int log_fds[(int)LOG_ID_MAX] = { -1, -1, -1, -1 };
static int g_logging_on = 1;
+static int g_dlog_level_init = 0;
static int g_dlog_level = DLOG_SILENT;
static int __dlog_init(log_id_t, log_priority, const char *tag, const char *msg);
int log_fd;
struct iovec vec[3];
- if (log_id < LOG_ID_APPS) {
- if(prio < g_dlog_level) {
- return 0;
- }
- } else if (LOG_ID_MAX <= log_id) {
- return 0;
- }
if (log_id < LOG_ID_MAX)
log_fd = log_fds[log_id];
else
}
static int __write_to_log_sd_journal_print(log_id_t log_id, log_priority prio, const char *tag, const char *msg)
{
- ssize_t ret;
- int log_fd;
-
- if (log_id < LOG_ID_APPS) {
- if(prio < g_dlog_level) {
- return 0;
- }
- } else if (LOG_ID_MAX <= log_id) {
- return 0;
- }
- if (log_id < LOG_ID_MAX)
- log_fd = log_fds[log_id];
- else
- return -1;
- return sd_journal_print(dlog_pri_to_journal_pri(prio), "%c %s: %s",dlog_pri_to_char(prio), tag, msg);
+ return sd_journal_print(dlog_pri_to_journal_pri(prio), "%c %s: %s", dlog_pri_to_char(prio), tag, msg);
}
#endif
void init_dlog_level(void)
}
} else
g_dlog_level = 8;
+ g_dlog_level_init = 1;
}
static int __dlog_init(log_id_t log_id, log_priority prio, const char *tag, const char *msg)
{
// get filtering info
// open device
if (write_to_log == __dlog_init) {
- init_dlog_level();
log_fds[LOG_ID_MAIN] = open("/dev/"LOG_MAIN, O_WRONLY);
log_fds[LOG_ID_RADIO] = open("/dev/"LOG_RADIO, O_WRONLY);
log_fds[LOG_ID_APPS] = open("/dev/"LOG_APPS, O_WRONLY);
if (log_fds[LOG_ID_MAIN] < 0 || log_fds[LOG_ID_RADIO] < 0) {
- fprintf(stderr, "open log dev is failed\n");
write_to_log = __write_to_log_null;
} else {
#ifdef SD_JOURNAL_SUPPORT
if (log_fds[LOG_ID_SYSTEM] < 0)
log_fds[LOG_ID_SYSTEM] = log_fds[LOG_ID_MAIN];
-
if (log_fds[LOG_ID_APPS] < 0)
log_fds[LOG_ID_APPS] = log_fds[LOG_ID_MAIN];
}
int __dlog_vprint(log_id_t log_id, int prio, const char *tag, const char *fmt, va_list ap)
{
char buf[LOG_BUF_SIZE];
+ if (!g_dlog_level_init) {
+ init_dlog_level();
+ }
+ if (log_id < LOG_ID_APPS) {
+ if(prio < g_dlog_level) {
+ return 0;
+ }
+ } else if (LOG_ID_MAX <= log_id) {
+ return 0;
+ }
vsnprintf(buf, LOG_BUF_SIZE, fmt, ap);
va_list ap;
char buf[LOG_BUF_SIZE];
+ if (!g_dlog_level_init) {
+ init_dlog_level();
+ }
+ if (log_id < LOG_ID_APPS) {
+ if(prio < g_dlog_level) {
+ return 0;
+ }
+ } else if (LOG_ID_MAX <= log_id) {
+ return 0;
+ }
+
va_start(ap, fmt);
vsnprintf(buf, LOG_BUF_SIZE, fmt, ap);
va_end(ap);