xref: /rockchip-linux_mpp/osal/linux/os_log.c (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1 /* SPDX-License-Identifier: Apache-2.0 OR MIT */
2 /*
3  * Copyright (c) 2015 Rockchip Electronics Co., Ltd.
4  */
5 
6 #if defined(linux) && !defined(__ANDROID__)
7 
8 #define MODULE_TAG "os_log"
9 
10 #include <stdio.h>
11 #include <stdarg.h>
12 #include <syslog.h>
13 
14 #include "os_log.h"
15 #include "os_env.h"
16 #include "mpp_singleton.h"
17 
18 #define LINE_SZ 1024
19 
syslog_wrapper_init()20 void syslog_wrapper_init()
21 {
22     int option = LOG_PID;
23     RK_U32 syslog_perror = 1;
24     RK_U32 syslog_cons = 0;
25 
26     os_get_env_u32("mpp_syslog_perror", &syslog_perror, 1);
27     if (syslog_perror)
28         option |= LOG_PERROR;
29 
30     os_get_env_u32("mpp_syslog_cons", &syslog_cons, 0);
31     if (syslog_cons)
32         option |= LOG_CONS;
33 
34     openlog("mpp", option, LOG_USER);
35 }
36 
syslog_wrapper_deinit()37 void syslog_wrapper_deinit()
38 {
39     closelog();
40 }
41 
os_log_trace(const char * tag,const char * msg,va_list list)42 void os_log_trace(const char* tag, const char* msg, va_list list)
43 {
44     char line[LINE_SZ] = {0};
45     snprintf(line, sizeof(line) - 1, "%s: %s", tag, msg);
46     vsyslog(LOG_NOTICE, line, list);
47 }
48 
os_log_debug(const char * tag,const char * msg,va_list list)49 void os_log_debug(const char* tag, const char* msg, va_list list)
50 {
51     char line[LINE_SZ] = {0};
52     snprintf(line, sizeof(line) - 1, "%s: %s", tag, msg);
53     vsyslog(LOG_DEBUG, line, list);
54 }
55 
os_log_info(const char * tag,const char * msg,va_list list)56 void os_log_info(const char* tag, const char* msg, va_list list)
57 {
58     char line[LINE_SZ] = {0};
59     snprintf(line, sizeof(line) - 1, "%s: %s", tag, msg);
60     vsyslog(LOG_INFO, line, list);
61 }
62 
os_log_warn(const char * tag,const char * msg,va_list list)63 void os_log_warn(const char* tag, const char* msg, va_list list)
64 {
65     char line[LINE_SZ] = {0};
66     snprintf(line, sizeof(line) - 1, "%s: %s", tag, msg);
67     vsyslog(LOG_WARNING, line, list);
68 }
69 
os_log_error(const char * tag,const char * msg,va_list list)70 void os_log_error(const char* tag, const char* msg, va_list list)
71 {
72     char line[LINE_SZ] = {0};
73     snprintf(line, sizeof(line) - 1, "%s: %s", tag, msg);
74     vsyslog(LOG_ERR, line, list);
75 }
76 
os_log_fatal(const char * tag,const char * msg,va_list list)77 void os_log_fatal(const char* tag, const char* msg, va_list list)
78 {
79     char line[LINE_SZ] = {0};
80     snprintf(line, sizeof(line) - 1, "%s: %s", tag, msg);
81     vsyslog(LOG_CRIT, line, list);
82 }
83 
84 MPP_SINGLETON(MPP_SGLN_OS_LOG, os_log, syslog_wrapper_init, syslog_wrapper_deinit)
85 
86 #endif
87