C语言日志函数

C语言日志函数

要求:实现一个打印日志信息的函数,支持可变参数,调用时生成日志内容。

void log(char *format, ...){
    va_list  args;
    va_start(args, format);

    static char buffer[BUF_SIZE - 100] = {0};
    memset(buffer, 0, BUF_SIZE);
    vsprintf(buffer, format, args);
    va_end(args);

    time_t now = time(NULL);
    static char message[BUF_SIZE] = {0};
    memset(message, 0, BUF_SIZE);
    strftime (message, sizeof(message), "[%Y-%m-%d %H:%M:%S] ", localtime(&now));

    strcat(message, buffer);
    strcat(message, "\n");
    printf(message);
    if(FILE_HANDLER != NULL){
        fwrite(buffer, strlen(buffer), sizeof(char), FILE_HANDLER);
    }
}
log("TCP Buffer empty : %d, %s", errno, strerror(errno));
lishujun

程序员一枚