예제 #1
0
DatabaseLogger *DatabaseLogger::create(QString table, QMutex *mutex)
{
    QByteArray ba = table.toLocal8Bit();
    const char *tble = ba.constData();
    DatabaseLogger *logger =
        dynamic_cast<DatabaseLogger *>(loggerMap.value(table, NULL));

    if (logger)
        return logger;

    // Need to add a new FileLogger
    mutex->unlock();
    // inserts into loggerMap
    logger = new DatabaseLogger(tble);
    mutex->lock();

    if (!logger->setupZMQSocket())
    {
        delete logger;
        return NULL;
    }

    ClientList *clients = new ClientList;
    logRevClientMap.insert(logger, clients);
    return logger;
}
예제 #2
0
SyslogLogger *SyslogLogger::create(QMutex *mutex, bool open)
{
    SyslogLogger *logger =
        dynamic_cast<SyslogLogger *>(loggerMap.value("", NULL));

    if (logger)
        return logger;

    // Need to add a new FileLogger
    mutex->unlock();
    // inserts into loggerMap
    logger = new SyslogLogger(open);
    mutex->lock();

    if (!logger->setupZMQSocket())
    {
        delete logger;
        return NULL;
    }

    ClientList *clients = new ClientList;
    logRevClientMap.insert(logger, clients);
    return logger;
}