- g_debug_level=atoi(debuglevel);
-#ifndef NDEBUG
- fprintf(stderr, "debug level init %d(%s) \n",g_debug_level,debuglevel);
+}
+#ifdef SD_JOURNAL_SUPPORT
+static int dlog_pri_to_journal_pri(log_priority prio)
+{
+ int journal_prio = LOG_DEBUG;
+
+ switch(prio) {
+ case DLOG_UNKNOWN:
+ case DLOG_DEFAULT:
+ case DLOG_VERBOSE:
+ journal_prio = LOG_DEBUG;
+ break;
+ case DLOG_DEBUG:
+ journal_prio = LOG_DEBUG;
+ break;
+ case DLOG_INFO:
+ journal_prio = LOG_INFO;
+ break;
+ case DLOG_WARN:
+ journal_prio = LOG_WARNING;
+ break;
+ case DLOG_ERROR:
+ journal_prio = LOG_ERR;
+ break;
+ case DLOG_FATAL:
+ journal_prio = LOG_CRIT;
+ break;
+ case DLOG_SILENT:
+ default:
+ journal_prio = -1;
+ break;
+ }
+ return journal_prio;
+}
+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);
+}