#include #include #include #include #include #include #include "log.h" #include "main.h" static FILE *logFile; int initLog(char *name) { logFile = fopen(name, "a"); if (logFile == NULL) { fprintf(stderr, _("Opening logfile \"%s\" failed!\n"), name); return -1; } DEBUG_MSG(_("I use logfile: \"%s\")\n"), name); addToLog(LOG_INF, "open log file"); return 0; } void addToLog(int type, char *msg) { char str[STR_LOG_SIZE]; struct tm *tm_struct; time_t currentTime; char *str_type; currentTime = time(NULL); tm_struct = localtime(¤tTime); switch (type) { case LOG_INF: str_type = "INF"; break; case LOG_DBG: str_type = "DBG"; break; case LOG_WRN: str_type = "WRN"; break; case LOG_ERR: str_type = "ERR"; break; default: assert(!_("Really bad log value!")); break; } sprintf(str, "(%02d-%02d-%02d %02d:%02d:%02d) %s %s\n", 1900 + tm_struct->tm_year, tm_struct->tm_mon, tm_struct->tm_mday, tm_struct->tm_hour, tm_struct->tm_min, tm_struct->tm_sec, str_type, msg); fprintf(logFile, str); fflush(logFile); } void quitLog() { addToLog(LOG_INF, "close log file"); fclose(logFile); }