thermferm/logger.c

changeset 61
2810e55ac99d
parent 51
a03b6dac5398
child 62
dc22cb54babd
equal deleted inserted replaced
60:dc3d953a218f 61:2810e55ac99d
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 }

mercurial