Пример #1
0
void setLogFile(const CharString logFileName) {
  EventLogger eventLogger = _getEventLoggerInstance();
  eventLogger->logFile = fopen(logFileName->data, "a");
  if(eventLogger->logFile == NULL) {
    logCritical("Could not open file '%s' for logging", logFileName->data);
  }
}
Пример #2
0
char *stringForLastError(int errorNumber)
{
    EventLogger eventLogger = _getEventLoggerInstance();

    if (eventLogger->systemErrorMessage == NULL) {
        eventLogger->systemErrorMessage = newCharString();
    }

#if UNIX
    return strerror(errorNumber);
#elif WINDOWS
    FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM,
                   0,
                   errorNumber,
                   MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                   eventLogger->systemErrorMessage->data,
                   (DWORD)(eventLogger->systemErrorMessage->capacity - 1),
                   NULL);
    // Windows adds newlines for error messages which we must trim
    char *searchChar = strrchr(eventLogger->systemErrorMessage->data, '\n');
    if (searchChar != NULL) {
        *searchChar = '\0';
    }
    searchChar = strrchr(eventLogger->systemErrorMessage->data, '\r');
    if (searchChar != NULL) {
        *searchChar = '\0';
    }
    return eventLogger->systemErrorMessage->data;
#endif

}
Пример #3
0
static void _logMessage(const LogLevel logLevel, const char *message, va_list arguments)
{
    long elapsedTimeInMs;
    EventLogger eventLogger = _getEventLoggerInstance();
#if WINDOWS
    ULONGLONG currentTime;
#else
    struct timeval currentTime;
#endif

    if (eventLogger != NULL && logLevel >= eventLogger->logLevel) {
        CharString formattedMessage = newCharStringWithCapacity(kCharStringLengthDefault * 2);
        vsnprintf(formattedMessage->data, formattedMessage->capacity, message, arguments);
#if WINDOWS
        currentTime = GetTickCount();
        elapsedTimeInMs = (unsigned long)(currentTime - eventLogger->startTimeInMs);
#else
        gettimeofday(&currentTime, NULL);
        elapsedTimeInMs = ((currentTime.tv_sec - (eventLogger->startTimeInSec + 1)) * 1000) +
                          (currentTime.tv_usec / 1000) + (1000 - eventLogger->startTimeInMs);
#endif
        _printMessage(logLevel, elapsedTimeInMs, getAudioClock()->currentFrame, formattedMessage->data, eventLogger);
        freeCharString(formattedMessage);
    }
}
Пример #4
0
char* stringForLastError(int errorNumber) {
  EventLogger eventLogger = _getEventLoggerInstance();
  if(eventLogger->systemErrorMessage == NULL) {
    eventLogger->systemErrorMessage = newCharString();
  }

#if UNIX
  return strerror(errorNumber);
#elif WINDOWS
  FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, 0, errorNumber, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
    eventLogger->systemErrorMessage->data, eventLogger->systemErrorMessage->length - 1, NULL);
#else
  charStringCopyCString(eventLogger->systemErrorMessage, "Unknown error");
#endif

  return eventLogger->systemErrorMessage->data;
}
Пример #5
0
void setLoggingZebraSize(const unsigned long zebraStripeSize) {
  EventLogger eventLogger = _getEventLoggerInstance();
  eventLogger->zebraStripeSize = zebraStripeSize;
}
Пример #6
0
void setLoggingColorEnabled(boolByte useColor) {
  EventLogger eventLogger = _getEventLoggerInstance();
  eventLogger->useColor = useColor;
}
Пример #7
0
void setLogLevel(LogLevel logLevel) {
  EventLogger eventLogger = _getEventLoggerInstance();
  eventLogger->logLevel = logLevel;
}
Пример #8
0
boolByte isLogLevelAtLeast(LogLevel logLevel) {
  EventLogger eventLogger = _getEventLoggerInstance();
  return (eventLogger->logLevel >= logLevel);
}
Пример #9
0
void setLoggingColorScheme(const LogColorScheme colorScheme) {
  EventLogger eventLogger = _getEventLoggerInstance();
  eventLogger->colorScheme = colorScheme;
}