70 lines
1.5 KiB
C
Executable File
70 lines
1.5 KiB
C
Executable File
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <stdarg.h>
|
|
#include <string.h>
|
|
|
|
|
|
#include "ulog.h"
|
|
#include "common_types.h"
|
|
#include "ulog_api.h"
|
|
|
|
#define LOG_MSG_SZ 1024
|
|
|
|
ulog_t *ulog_init(const char *module_name, u8 is_print)
|
|
{
|
|
ulog_t *log;
|
|
u32 len = 0;
|
|
|
|
if (NULL == module_name) {
|
|
fprintf(stderr, "Bad input: module_name is NULL\n");
|
|
return NULL;
|
|
}
|
|
|
|
len = strlen(module_name);
|
|
|
|
if (len > MAX_MODULE_NAME_SZ) {
|
|
fprintf(stderr, "The length:%d of module_name can't more than %d\n", len, MAX_MODULE_NAME_SZ);
|
|
return NULL;
|
|
}
|
|
|
|
log = (ulog_t *)malloc(sizeof(*log));
|
|
if (log == NULL) {
|
|
fprintf(stderr, "Allocating log memory is failure\n");
|
|
return NULL;
|
|
}
|
|
strncpy(log->module_name, module_name, len);
|
|
log->module_name[len] = '\0';
|
|
|
|
int opt = LOG_PERROR |LOG_PID;
|
|
if (is_print > 0) {
|
|
opt |= LOG_CONS;
|
|
}
|
|
openlog(log->module_name, opt, LOG_USER);
|
|
|
|
return log;
|
|
}
|
|
|
|
void ulog_close(ulog_t *log)
|
|
{
|
|
if (log != NULL) {
|
|
free(log);
|
|
}
|
|
closelog();
|
|
}
|
|
|
|
void ulog_record(const ulog_t *log, int level, const char *fmt, ...)
|
|
{
|
|
if (log == NULL) {
|
|
fprintf(stderr, "Log is null\n");
|
|
return;
|
|
}
|
|
|
|
char log_buf[LOG_MSG_SZ];
|
|
va_list args;
|
|
va_start(args, fmt);
|
|
vsnprintf(log_buf, sizeof(log_buf), fmt, args);
|
|
va_end(args);
|
|
syslog(level, MODULE_FMT" %s", log->module_name, log_buf);
|
|
}
|
|
|