--- lbbs/src/log.c 2004/10/18 11:33:20 1.1 +++ lbbs/src/log.c 2004/10/23 18:41:41 1.7 @@ -15,7 +15,10 @@ * * ***************************************************************************/ -#include "common.h" +#include "io.h" +#include +#include +#include FILE *fp_log_std; FILE *fp_log_err; @@ -34,7 +37,7 @@ log_begin (char *file_log_std, char *fil if (fp_log_err == NULL) { perror ("log_begin failed\n"); - return -1; + return -2; } return 0; @@ -48,37 +51,70 @@ log_end () } int -log_std (char *msg) +log_head (char *buf) { - if (fp_log_std == NULL) - { - perror ("log_std failed\n"); - return -1; - } + time_t t; + char s_time[256]; + t = time(0); + + strftime(s_time,256,"%Y-%m-%d %H:%M:%S", localtime (&t)); + sprintf(buf,"[%s] [%d] ", s_time, getpid()); + + return 0; +} - if (fprintf (fp_log_std, msg)<0) - { - perror ("log_std failed\n"); - return -2; - } +int +log_std(const char * format, ...) +{ + va_list args; + int retval; + char buf[1024]; - return 0; + log_head(buf); + strcat(buf, format); + + va_start (args, format); + retval = vfprintf (fp_log_std, buf, args); + va_end (args); + + fflush(fp_log_std); + + return retval; } int -log_error (char *error_msg) +log_error (const char * format, ...) { - if (fp_log_err == NULL) - { - perror ("log_error failed\n"); - return -1; - } + va_list args; + int retval; + char buf[1024]; - if (fprintf (fp_log_err, error_msg)<0) - { - perror ("log_error failed\n"); - return -2; - } + log_head(buf); + strcat(buf, format); - return 0; + va_start (args, format); + retval = vfprintf (fp_log_err, buf, args); + va_end (args); + + fflush(fp_log_err); + + return retval; +} + +int +log_std_redirect(int fd) +{ + int ret; + close (fileno(fp_log_std)); + ret = dup2(fd, fileno(fp_log_std)); + return ret; +} + +int +log_err_redirect(int fd) +{ + int ret; + close (fileno(fp_log_err)); + ret = dup2(fd, fileno(fp_log_err)); + return ret; }