Пример #1
0
int
chkLogfileName (char *logDir, char *logFileName)
{
    time_t myTime;
    char *logFile = NULL;
    int i;

    myTime = time (0);
    if (myTime < LogfileLastChkTime + LOGFILE_CHK_INT) {
        /* not time yet */
        return (0);
    }

    getLogfileName (&logFile, logDir, logFileName);

    if (CurLogfileName != NULL && strcmp (CurLogfileName, logFile) == 0) {
        free (logFile);
        return (0);
    }

    /* open the logfile */

    if ((i = open(logFile, O_CREAT|O_RDWR, 0644)) < 0) {
        fprintf(stderr, "Unable to open logFile %s\n", logFile);
        free (logFile);
        return (-1);
    } else {
        lseek (i, 0, SEEK_END);
    }

    if (CurLogfileName != NULL) {
        free (CurLogfileName);
    }

    CurLogfileName = logFile;

    close (0);
    close (1);
    close (2);
    (void) dup2(i, 0);
    (void) dup2(i, 1);
    (void) dup2(i, 2);
    (void) close(i);

    return (0);
}
Пример #2
0
Logger *LoggerManager::CreateLoggerInstance() {
	if (loggerInstance == NULL) {
		switch(loggerStyle) {
		case LoggerManager::DEFAULT:
			loggerInstance = new LoggerDefault(getLoggerLvl());
			break;
		case LoggerManager::LOGFILE:
			loggerInstance = new LoggerLogFile(getLogfileName(), getWritemode(), getLoggerLvl());
			break;
		case LoggerManager::COLOR:
			loggerInstance = new LoggerColor(getLoggerLvl(), colors);
			break;
		case LoggerManager::NETWORKSTREAM:
			loggerInstance = new LoggerNetworkStream(getProtocol(), getIpAddress(),
					getPortNumber(), getLoggerLvl());
			break;
		}
	}
	return loggerInstance;
}