mirror of
https://github.com/zhenyan121/Cubed.git
synced 2026-08-09 02:07:04 +08:00
* refactor(log): convert Logger from namespace to class with static methods - Replace the Logger namespace of free functions with a Logger class containing static methods (info, error, warn, debug). - Simplify log calls by removing explicit source_location parameters; adopt `std::print` for output formatting. - Undefine common macro names (DEBUG, INFO, ERROR, WARN) to avoid collisions. - Update `renderer.cpp` to use `Logger::debug` instead of the old `Logger::log`. - Add missing `#include <source_location>` in `audio_error.hpp`. - Fix early return condition in `WorldScene::set_pause`. * refactor(camera): remove reset_camera method and first-mouse flag * refactor: replace --no-debug with logging options, add assertions, fix typo - Removed `--no-debug` CLI flag and added `--logs-path`, `--log-level`, `--enable-filelog`, `--enable-consolelog`. - Added file logging support with daily rotation, log level threshold, and console/file output control. - Added `m_init` check in `Config::get`/`set` to prevent use before initialization. - Fixed typo in `DebugCollector::destroy` (`distory` → `destory`). - Removed `debug_on` parameter from `Renderer::init`; OpenGL debug output is now unconditionally enabled in debug builds. * feat(debug): enable GL debug context flag in debug builds
37 lines
905 B
C++
37 lines
905 B
C++
#pragma once
|
|
|
|
#include "Cubed/ui/column_layout.hpp"
|
|
#include "Cubed/ui/label.hpp"
|
|
#include "Cubed/ui/widget.hpp"
|
|
|
|
#include <format>
|
|
#include <memory>
|
|
#include <unordered_map>
|
|
|
|
namespace Cubed {
|
|
|
|
class DebugCollector {
|
|
public:
|
|
static DebugCollector& get();
|
|
static void destory();
|
|
DebugCollector();
|
|
|
|
void report(const std::string& name, std::string_view content);
|
|
void init(int width, int height);
|
|
Widget& get_widget();
|
|
bool handle_event(const Event& e);
|
|
|
|
private:
|
|
ColumnLayout m_widget;
|
|
std::unordered_map<std::string, Label*> m_component;
|
|
static std::unique_ptr<DebugCollector>& get_ptr();
|
|
};
|
|
|
|
template <typename... Args>
|
|
void d_rep(const std::string& key, std::format_string<Args...> fmt,
|
|
Args&&... args) {
|
|
std::string msg = std::vformat(fmt.get(), std::make_format_args(args...));
|
|
DebugCollector::get().report(key, msg);
|
|
}
|
|
|
|
} // namespace Cubed
|