将多线程日志改为单线程,因为在程序退出时会遭遇错误
This commit is contained in:
parent
b1955202cf
commit
e7bc3fe89a
@ -1,12 +1,9 @@
|
|||||||
#include "application.h"
|
#include "application.h"
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
#include "misc/singleton/singleton_manager.h"
|
#include "misc/singleton/singleton_manager.h"
|
||||||
#include "spdlog/async.h"
|
|
||||||
#include "spdlog/spdlog.h"
|
#include "spdlog/spdlog.h"
|
||||||
#include "spdlog/sinks/basic_file_sink.h"
|
#include "spdlog/sinks/daily_file_sink.h"
|
||||||
#include "spdlog/sinks/rotating_file_sink.h"
|
#include "spdlog/sinks/stdout_color_sinks.h"
|
||||||
|
|
||||||
application* g_application = nullptr;
|
application* g_application = nullptr;
|
||||||
|
|
||||||
@ -15,14 +12,19 @@ application::application() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void application::init() {
|
void application::init() {
|
||||||
try {
|
// 创建控制台日志记录器
|
||||||
auto max_size = 1048576 * 10; // 10MB
|
auto console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_st>();
|
||||||
auto max_files = 3;
|
console_sink->set_level(spdlog::level::info); // 设置控制台日志级别
|
||||||
async_spdlog_ = spdlog::rotating_logger_mt<spdlog::async_factory>("async_rotating_logger", "logs/log.txt", max_size, max_files);
|
|
||||||
spdlog::set_default_logger(async_spdlog_);
|
// 创建文件日志记录器
|
||||||
} catch (const spdlog::spdlog_ex& ex) {
|
auto file_sink = std::make_shared<spdlog::sinks::daily_file_sink_st>("logs/log.txt", 0, 0); // 每天创建一个新的日志文件
|
||||||
std::cout << "Log init failed: " << ex.what() << std::endl;
|
file_sink->set_level(spdlog::level::info); // 设置文件日志级别
|
||||||
}
|
|
||||||
|
// 创建异步多路输出日志记录器,将日志输出到控制台和文件
|
||||||
|
spdlog::sinks_init_list sink_list = {console_sink, file_sink};
|
||||||
|
auto logger = std::make_shared<spdlog::logger>("", sink_list);
|
||||||
|
// 设置默认日志记录器
|
||||||
|
spdlog::set_default_logger(logger);
|
||||||
|
|
||||||
singleton_manager::get()->init();
|
singleton_manager::get()->init();
|
||||||
}
|
}
|
||||||
@ -31,8 +33,4 @@ void application::shutdown() {
|
|||||||
singleton_manager::get()->release();
|
singleton_manager::get()->release();
|
||||||
spdlog::drop_all();
|
spdlog::drop_all();
|
||||||
spdlog::shutdown();
|
spdlog::shutdown();
|
||||||
async_spdlog_.reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
void application::request_exit() {
|
|
||||||
}
|
}
|
||||||
|
@ -24,9 +24,6 @@ public:
|
|||||||
|
|
||||||
virtual void shutdown();
|
virtual void shutdown();
|
||||||
|
|
||||||
void request_exit();
|
|
||||||
|
|
||||||
virtual void tick(float delta_time) {}
|
virtual void tick(float delta_time) {}
|
||||||
protected:
|
protected:
|
||||||
std::shared_ptr<spdlog::logger> async_spdlog_;
|
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user