mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
Add ZLIB linking and file logging support
- Add ZLIB find_package and linking for addon compression - Add file logging to logs/wowee.log
This commit is contained in:
parent
82a44659b4
commit
9c8b202595
3 changed files with 33 additions and 10 deletions
|
|
@ -21,6 +21,7 @@ find_package(GLEW REQUIRED)
|
|||
find_package(OpenSSL REQUIRED)
|
||||
find_package(Threads REQUIRED)
|
||||
find_package(SQLite3 REQUIRED)
|
||||
find_package(ZLIB REQUIRED)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(FFMPEG REQUIRED libavformat libavcodec libswscale libavutil)
|
||||
|
||||
|
|
@ -260,6 +261,7 @@ target_link_libraries(wowee PRIVATE
|
|||
OpenSSL::SSL
|
||||
OpenSSL::Crypto
|
||||
Threads::Threads
|
||||
ZLIB::ZLIB
|
||||
)
|
||||
|
||||
# SQLite
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <mutex>
|
||||
#include <fstream>
|
||||
|
||||
namespace wowee {
|
||||
namespace core {
|
||||
|
|
@ -63,6 +64,9 @@ private:
|
|||
|
||||
LogLevel minLevel = LogLevel::DEBUG;
|
||||
std::mutex mutex;
|
||||
std::ofstream fileStream;
|
||||
bool fileReady = false;
|
||||
void ensureFile();
|
||||
};
|
||||
|
||||
// Convenience macros
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#include <chrono>
|
||||
#include <iomanip>
|
||||
#include <ctime>
|
||||
#include <filesystem>
|
||||
|
||||
namespace wowee {
|
||||
namespace core {
|
||||
|
|
@ -11,12 +12,21 @@ Logger& Logger::getInstance() {
|
|||
return instance;
|
||||
}
|
||||
|
||||
void Logger::ensureFile() {
|
||||
if (fileReady) return;
|
||||
fileReady = true;
|
||||
std::error_code ec;
|
||||
std::filesystem::create_directories("logs", ec);
|
||||
fileStream.open("logs/wowee.log", std::ios::out | std::ios::app);
|
||||
}
|
||||
|
||||
void Logger::log(LogLevel level, const std::string& message) {
|
||||
if (level < minLevel) {
|
||||
return;
|
||||
}
|
||||
|
||||
std::lock_guard<std::mutex> lock(mutex);
|
||||
ensureFile();
|
||||
|
||||
// Get current time
|
||||
auto now = std::chrono::system_clock::now();
|
||||
|
|
@ -28,20 +38,27 @@ void Logger::log(LogLevel level, const std::string& message) {
|
|||
localtime_r(&time, &tm);
|
||||
|
||||
// Format: [YYYY-MM-DD HH:MM:SS.mmm] [LEVEL] message
|
||||
std::cout << "["
|
||||
<< std::put_time(&tm, "%Y-%m-%d %H:%M:%S")
|
||||
<< "." << std::setfill('0') << std::setw(3) << ms.count()
|
||||
<< "] [";
|
||||
std::ostringstream line;
|
||||
line << "["
|
||||
<< std::put_time(&tm, "%Y-%m-%d %H:%M:%S")
|
||||
<< "." << std::setfill('0') << std::setw(3) << ms.count()
|
||||
<< "] [";
|
||||
|
||||
switch (level) {
|
||||
case LogLevel::DEBUG: std::cout << "DEBUG"; break;
|
||||
case LogLevel::INFO: std::cout << "INFO "; break;
|
||||
case LogLevel::WARNING: std::cout << "WARN "; break;
|
||||
case LogLevel::ERROR: std::cout << "ERROR"; break;
|
||||
case LogLevel::FATAL: std::cout << "FATAL"; break;
|
||||
case LogLevel::DEBUG: line << "DEBUG"; break;
|
||||
case LogLevel::INFO: line << "INFO "; break;
|
||||
case LogLevel::WARNING: line << "WARN "; break;
|
||||
case LogLevel::ERROR: line << "ERROR"; break;
|
||||
case LogLevel::FATAL: line << "FATAL"; break;
|
||||
}
|
||||
|
||||
std::cout << "] " << message << std::endl;
|
||||
line << "] " << message;
|
||||
|
||||
std::cout << line.str() << std::endl;
|
||||
if (fileStream.is_open()) {
|
||||
fileStream << line.str() << std::endl;
|
||||
fileStream.flush();
|
||||
}
|
||||
}
|
||||
|
||||
void Logger::setLogLevel(LogLevel level) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue