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

Contents of /lbbs/src/log.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.20 - (show annotations)
Wed Jun 4 13:42:53 2025 UTC (9 months, 1 week ago) by sysadm
Branch: MAIN
Changes since 1.19: +20 -20 lines
Content type: text/x-csrc
Rename log_std() to log_common()

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

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