dept2 / CuteLogger

Logger: simple, convinient and thread safe logger for Qt-based C++ apps
GNU Lesser General Public License v2.1
148 stars 96 forks source link

Логгирование нескольких экземпляров исполнителя с ротацией #27

Closed dsbabkov closed 4 years ago

dsbabkov commented 6 years ago

Привет! Прошу подсказать, возможно ли выполнить логгирование сразу нескольких запущенных экземпляров приложения а так же обеспечить своевременную чистку логов?

Мой код сейчас выглядит следующим образом:

void setupLogger(){
    const QString LOG_DIR("log");
    const QString &localDataPath = QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation);
    QDir().mkpath(localDataPath);
    QDir(localDataPath).mkdir(LOG_DIR);

    qDebug() << "Log dir:" << qUtf8Printable(localDataPath);

    ConsoleAppender *consoleAppender = new ConsoleAppender;
    consoleAppender->setFormat("[%{Type:-7}] %{message}\n");

    RollingFileAppender *fileAppender = new RollingFileAppender(QStringLiteral("%1/%2/log").arg(localDataPath).arg(LOG_DIR));
    fileAppender->setDatePattern(RollingFileAppender::DailyRollover);
    fileAppender->setLogFilesLimit(100);
    fileAppender->setFormat("[%{time}] [%{Type:-7}] %{message:-150} %{function:-40} %{line:-4}\n");

    Logger::globalInstance()->registerAppender(consoleAppender);
    Logger::globalInstance()->registerAppender(fileAppender);
}

Буду очень признателен за помощь

dsbabkov commented 4 years ago

Original question was if it is able to log several running instances of application using log rotation

The answer is: at application start set current date/time and pid in file path to separate logs of each instance