20 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
20 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
21 *****************************************************************************/ |
21 *****************************************************************************/ |
22 |
22 |
23 #include "thermferm.h" |
23 #include "thermferm.h" |
24 |
24 |
|
25 char check[10240] = ""; |
|
26 |
25 |
27 |
26 void logger(char *filename, char *progname, char *data) |
28 void logger(char *filename, char *progname, char *data) |
27 { |
29 { |
28 struct timeval now; |
30 struct timeval now; |
29 struct tm ptm; |
31 struct tm ptm; |
35 name = xstrcat(name, (char *)"/"); |
37 name = xstrcat(name, (char *)"/"); |
36 name = xstrcat(name, filename); |
38 name = xstrcat(name, filename); |
37 |
39 |
38 gettimeofday(&now, NULL); |
40 gettimeofday(&now, NULL); |
39 localtime_r(&now.tv_sec, &ptm); |
41 localtime_r(&now.tv_sec, &ptm); |
|
42 outstr = calloc(10240, sizeof(char)); |
|
43 snprintf(outstr, 10239, "%04d-%02d-%02d %02d:%02d,%s\n", ptm.tm_year + 1900, ptm.tm_mon + 1, ptm.tm_mday, ptm.tm_hour, ptm.tm_min, data); |
40 |
44 |
41 if ((logfile = fopen(name, "a+"))) { |
45 if (strcmp(check, outstr)) { |
42 outstr = calloc(10240, sizeof(char)); |
46 snprintf(check, 10239, "%04d-%02d-%02d %02d:%02d,%s\n", ptm.tm_year + 1900, ptm.tm_mon + 1, ptm.tm_mday, ptm.tm_hour, ptm.tm_min, data); |
43 snprintf(outstr, 10239, "%04d-%02d-%02d %02d:%02d,%s\n", ptm.tm_year + 1900, ptm.tm_mon + 1, ptm.tm_mday, ptm.tm_hour, ptm.tm_min, data); |
47 if ((logfile = fopen(name, "a+"))) { |
44 fprintf(logfile, outstr); |
48 fprintf(logfile, outstr); |
45 fclose(logfile); |
49 fclose(logfile); |
46 free(outstr); |
50 free(outstr); |
47 outstr = NULL; |
51 outstr = NULL; |
48 } else { |
52 } else { |
49 syslog(LOG_NOTICE, "logger: cannot open %s for writing", name); |
53 syslog(LOG_NOTICE, "logger: cannot open %s for writing", name); |
|
54 } |
50 } |
55 } |
51 |
56 |
52 free(name); |
57 free(name); |
53 name = NULL; |
58 name = NULL; |
54 } |
59 } |