LingYun Studio embeded system framwork software, such as thirdparty build shell and lingyun library
guowenxue
2021-07-17 dcb85398f505481db3a33d35049584b82b1397b9
booster/logger.c
@@ -20,7 +20,7 @@
/* This library is not thread safe */
static logger_t *logger = NULL;
char *log_str[LOG_LEVEL_MAX + 1] = { "", "F", "E", "W", "N", "D", "I", "T", "M" };
char *log_str[LOG_LEVEL_MAX + 1] = { "", "E", "W", "N", "D", "I", "M" };
#define LOG_TIME_FMT       "%Y-%m-%d %H:%M:%S"
@@ -32,8 +32,8 @@
    if (sig == SIGHUP)
    {
        signal(SIGHUP, log_signal_handler);
        log_fatal("SIGHUP received - reopenning log file [%s]", logger->file);
        logger_reopen();
        log_err("SIGHUP received - reopenning log file [%s]", logger->file);
        log_reopen();
    }
}
@@ -81,65 +81,44 @@
/* log_size unit is KB */
int logger_init(logger_t *log, char *log_file, int level, int log_size)
int log_open(logger_t *log, char *log_file, int level, int log_size)
{
    struct sigaction              act;
    char                         *filemode;
    if( !log )
    {
        printf("ERROR: Invalid input arguments\n");
        return -1;
    }
    if( log_file )
    {
        strncpy(log->file, log_file, FILENAME_LEN);
        log->flag |= FLAG_LOGGER_FILE;
    }
    else
    {
        strncpy(log->file, DBG_LOG_FILE, FILENAME_LEN);
        log->flag |= FLAG_LOGGER_CONSOLE;
    }
    log->level = level;
    log->size = log_size;
    /* set static global $logger point to argument $log  */
    logger = log;
    return 0;
}
int logger_open(void)
    /* use standard error as output */
    if( !log_file || log_file[0]=='\0' || !strcmp(log_file, LOG_STDERR))
{
    struct sigaction act;
    char *filemode;
    if(!logger)
    {
        printf("ERROR: logger not initialise\n");
        return -1;
    }
    log_rollback_size = logger->size <= 0 ? LOG_ROLLBACK_NONE : logger->size*1024;    /* Unit KiB */
    if ('\0' == logger->file[0])
    {
        printf("ERROR: Logger filename not set\n");
        return -1;
    }
    if (!strcmp(logger->file, DBG_LOG_FILE))
    {
        logger->fp = stderr;
        log_rollback_size = LOG_ROLLBACK_NONE;
        strncpy(logger->file, LOG_STDERR, FILENAME_LEN);
        logger->flag |= FLAG_LOGGER_CONSOLE;
        logger->level = level;
        logger->fp = stderr;
        log_rollback_size = LOG_ROLLBACK_NONE;
        goto OUT;
    }
    strncpy(logger->file, log_file, FILENAME_LEN);
    logger->flag |= FLAG_LOGGER_FILE;
    logger->level = level;
    logger->size = log_size;
    log_rollback_size = log_size <= 0 ? LOG_ROLLBACK_NONE : log_size*1024;    /* Unit KiB */
    filemode = (log_rollback_size==LOG_ROLLBACK_NONE) ? "a+" : "w+";
    logger->fp = fopen(logger->file, filemode);
    if (NULL == logger->fp)
    if ( !logger->fp )
    {
        fprintf(stderr, "Open log file \"%s\" in %s failure: %s\n", logger->file, filemode, strerror(errno));
        return -2;
@@ -152,11 +131,10 @@
  OUT:
    logger_banner("Initialize");
    return 0;
}
void logger_close(void)
void log_close(void)
{
    if (!logger || !logger->fp )
        return;
@@ -172,15 +150,13 @@
    return ;
}
int logger_reopen(void)
int log_reopen(void)
{
    int rc = 0;
    char *filemode;
    if( !logger )
        return -1;
    log_rollback_size = logger->size <= 0 ? LOG_ROLLBACK_NONE : logger->size*1024;    /* Unit KiB */
    if (logger->flag & FLAG_LOGGER_CONSOLE )
    {
@@ -191,7 +167,7 @@
    if (logger->fp)
    {
        logger_close();
        log_close();
        filemode = log_rollback_size==LOG_ROLLBACK_NONE ? "a+" : "w+";
        logger->fp = fopen(logger->file, filemode); 
        
@@ -210,15 +186,6 @@
    return rc;
}
void logger_term(void)
{
    if(!logger)
        return ;
    logger_close();
    logger = NULL;
}
void logger_raw(const char *fmt, ...)
{