diff -r c3cc6e44d1a4 -r 3d7a241329e2 thermferm/logger.c --- a/thermferm/logger.c Tue Jul 01 21:53:03 2014 +0200 +++ b/thermferm/logger.c Tue Jul 01 23:14:57 2014 +0200 @@ -22,8 +22,6 @@ #include "thermferm.h" -//char check[10240] = ""; - void logger(char *filename, char *progname, char *data) { @@ -32,9 +30,15 @@ char *outstr = NULL, *name = NULL; FILE *logfile; - name = xstrcpy((char *)"/var/local/log/"); + if (getenv((char *)"USER") == NULL) { + name = xstrcpy((char *)"/root"); + } else { + name = xstrcpy(getenv((char *)"HOME")); + } + name = xstrcat(name, (char *)"/."); name = xstrcat(name, progname); - name = xstrcat(name, (char *)"/"); + name = xstrcat(name, (char *)"/log/"); + mkdirs(name, 0755); name = xstrcat(name, filename); gettimeofday(&now, NULL); @@ -42,15 +46,12 @@ outstr = calloc(10240, sizeof(char)); 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); -// if (strcmp(check, outstr)) { -// 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); - if ((logfile = fopen(name, "a+"))) { - fprintf(logfile, outstr); - fclose(logfile); - } else { - syslog(LOG_NOTICE, "logger: cannot open %s for writing", name); - } -// } + if ((logfile = fopen(name, "a+"))) { + fprintf(logfile, outstr); + fclose(logfile); + } else { + syslog(LOG_NOTICE, "logger: cannot open %s for writing", name); + } free(outstr); outstr = NULL;