Ich verwende spdlog, um Protokolle für verwalteten und nicht verwalteten Code in Visual Studio auszuführen. Aus diesem Grund habe ich Shell-Klassen geschrieben, die spdlog unter der Haube verwenden.Wie spdlog mehrmals im selben Programm starten und herunterfahren?
Allerdings habe ich Probleme mit meinen Komponententests. Meine Komponententests werden in einer einzelnen ausführbaren Datei ausgeführt. Daher müssen Sie spdlog-Protokollierer und Protokolldateien mehrmals anhalten und neu starten.
Wie mache ich das? Ich verwende diesen Code in einer Klasse zur Zeit Instanzen spdlog in einem Windows-DLL zu starten:
private:
API static std::mutex _mutex;
API static std::shared_ptr<spdlog::logger> _instance;
static std::shared_ptr<spdlog::logger> Instance()
{
std::unique_lock<std::mutex> lck(_mutex, std::defer_lock);
lck.lock();
if (_instance == nullptr)
{
_instance = spdlog::rotating_logger_mt("Logger", "EXO", 1024 * 1024 * 5, 4, true);
}
lck.unlock();
return _instance;
}