/[LeafOK_CVS]/lbbs/src/log.c
ViewVC logotype

Annotation of /lbbs/src/log.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.12 - (hide annotations)
Wed Apr 30 09:18:19 2025 UTC (10 months, 2 weeks ago) by sysadm
Branch: MAIN
Changes since 1.11: +1 -0 lines
Content type: text/x-csrc
Add missing header files
Update compile dependency

1 sysadm 1.1 /***************************************************************************
2 sysadm 1.11 log.c - description
3     -------------------
4     begin : Mon Oct 18 2004
5     copyright : (C) 2004 by leaf
6     email : leaflet@leafok.com
7 sysadm 1.1 ***************************************************************************/
8    
9     /***************************************************************************
10     * *
11     * This program is free software; you can redistribute it and/or modify *
12     * it under the terms of the GNU General Public License as published by *
13     * the Free Software Foundation; either version 2 of the License, or *
14     * (at your option) any later version. *
15     * *
16     ***************************************************************************/
17    
18 sysadm 1.6 #include "io.h"
19     #include <stdio.h>
20 sysadm 1.12 #include <string.h>
21 sysadm 1.6 #include <stdarg.h>
22 sysadm 1.10 #include <sys/types.h>
23 sysadm 1.6 #include <time.h>
24 sysadm 1.10 #include <unistd.h>
25 sysadm 1.1
26     FILE *fp_log_std;
27     FILE *fp_log_err;
28    
29 sysadm 1.11 int log_begin(char *file_log_std, char *file_log_err)
30 sysadm 1.1 {
31 sysadm 1.11 fp_log_std = fopen(file_log_std, "a");
32     if (fp_log_std == NULL)
33     {
34     perror("log_begin failed\n");
35     return -1;
36     }
37 sysadm 1.1
38 sysadm 1.11 fp_log_err = fopen(file_log_err, "a");
39     if (fp_log_err == NULL)
40     {
41     perror("log_begin failed\n");
42     return -2;
43     }
44 sysadm 1.1
45 sysadm 1.11 return 0;
46 sysadm 1.1 }
47    
48 sysadm 1.11 int log_end()
49 sysadm 1.1 {
50 sysadm 1.11 fclose(fp_log_std);
51     fclose(fp_log_err);
52 sysadm 1.1 }
53    
54 sysadm 1.11 int log_head(char *buf)
55 sysadm 1.2 {
56 sysadm 1.11 time_t t;
57     char s_time[256];
58     t = time(0);
59 sysadm 1.9
60 sysadm 1.11 strftime(s_time, 256, "%Y-%m-%d %H:%M:%S", localtime(&t));
61     sprintf(buf, "[%s] [%d] ", s_time, getpid());
62 sysadm 1.9
63 sysadm 1.11 return 0;
64 sysadm 1.2 }
65    
66 sysadm 1.11 int log_std(const char *format, ...)
67 sysadm 1.1 {
68 sysadm 1.11 va_list args;
69     int retval;
70     char buf[1024];
71 sysadm 1.2
72 sysadm 1.11 log_head(buf);
73     strcat(buf, format);
74 sysadm 1.3
75 sysadm 1.11 va_start(args, format);
76     retval = vfprintf(fp_log_std, buf, args);
77     va_end(args);
78 sysadm 1.1
79 sysadm 1.11 fflush(fp_log_std);
80 sysadm 1.6
81 sysadm 1.11 return retval;
82 sysadm 1.1 }
83    
84 sysadm 1.11 int log_error(const char *format, ...)
85 sysadm 1.1 {
86 sysadm 1.11 va_list args;
87     int retval;
88     char buf[1024];
89 sysadm 1.1
90 sysadm 1.11 log_head(buf);
91     strcat(buf, format);
92 sysadm 1.3
93 sysadm 1.11 va_start(args, format);
94     retval = vfprintf(fp_log_err, buf, args);
95     va_end(args);
96 sysadm 1.2
97 sysadm 1.11 fflush(fp_log_err);
98 sysadm 1.1
99 sysadm 1.11 return retval;
100 sysadm 1.1 }
101 sysadm 1.5
102 sysadm 1.11 int log_std_redirect(int fd)
103 sysadm 1.5 {
104 sysadm 1.11 int ret;
105     close(fileno(fp_log_std));
106     ret = dup2(fd, fileno(fp_log_std));
107     return ret;
108 sysadm 1.5 }
109    
110 sysadm 1.11 int log_err_redirect(int fd)
111 sysadm 1.5 {
112 sysadm 1.11 int ret;
113     close(fileno(fp_log_err));
114     ret = dup2(fd, fileno(fp_log_err));
115     return ret;
116 sysadm 1.5 }

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1