diff -r 8b5e8f1e172d -r a03b6dac5398 thermferm/logger.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/thermferm/logger.c Sun May 25 22:06:56 2014 +0200 @@ -0,0 +1,56 @@ +/***************************************************************************** + * Copyright (C) 2014 + * + * Michiel Broek + * + * This file is part of the mbsePi-apps + * + * This is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * mbsePi-apps is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with EC-65K; see the file COPYING. If not, write to the Free + * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + *****************************************************************************/ + +#include "thermferm.h" + + +void logger(char *filename, char *progname, char *data) +{ + struct timeval now; + struct tm ptm; + char *outstr = NULL, *name = NULL; + FILE *logfile; + + name = xstrcpy((char *)"/var/local/log/"); + name = xstrcat(name, progname); + name = xstrcat(name, (char *)"/"); + name = xstrcat(name, filename); + + gettimeofday(&now, NULL); + localtime_r(&now.tv_sec, &ptm); + + if ((logfile = fopen(name, "a+"))) { + 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); + fprintf(logfile, outstr); + fclose(logfile); + free(outstr); + outstr = NULL; + } else { + syslog(LOG_NOTICE, "logger: cannot open %s for writing", name); + } + + free(name); + name = NULL; +} + +