fix logger stacktrase

This commit is contained in:
2025-10-28 07:57:46 +03:00
parent 503ea9fb44
commit 44f7c2246e
2 changed files with 31 additions and 20 deletions

View File

@@ -22,16 +22,18 @@ namespace hack
public:
void set_location(std::source_location location) { m_location = location; }
void set_devider(std::string devider) { m_devider = devider; }
void on_file(bool v = false) { m_no_file = v; }
void on_func(bool v = false) { m_no_func = v; };
void on_row(bool v = false) { m_no_row = v; }
void on_info(bool v = false) { on_file(); on_func(); on_row(); }
void on_file(bool v = true) { m_on_file = v; }
void on_full_path(bool v = true) { m_on_full_path = v; }
void on_func(bool v = true) { m_on_func = v; };
void on_row(bool v = true) { m_on_row = v; }
void on_info() { on_file(); on_func(); on_row(); on_full_path(); }
void bool_as_number(bool v = true) { m_bool_as_number = v; }
void reset()
{
m_no_file = m_base_config.m_no_file;
m_no_func = m_base_config.m_no_func;
m_no_row = m_base_config.m_no_row;
m_on_file = m_base_config.m_on_file;
m_on_full_path = m_base_config.m_on_full_path;
m_on_func = m_base_config.m_on_func;
m_on_row = m_base_config.m_on_row;
m_devider = m_base_config.m_devider;
m_bool_as_number = m_base_config.m_bool_as_number;
}
@@ -54,9 +56,10 @@ namespace hack
// настройки по умолчанию
struct config
{
bool m_no_file = true; // показывать/не показывать название файла/пути в выоде логов
bool m_no_func = true; // показывать/не показывать название функции в выоде логов
bool m_no_row = false; // показывать/не показывать номер строки в выоде логов
bool m_on_file = true; // показывать/не показывать название файла/пути в выоде логов
bool m_on_full_path = false; // показывать/не показывать название файла/пути в выоде логов
bool m_on_func = false; // показывать/не показывать название функции в выоде логов
bool m_on_row = true; // показывать/не показывать номер строки в выоде логов
bool m_bool_as_number = false; // показывет bool как число или как текст (0, false);
std::string m_devider = " "; // разделитель по умолчанию
} m_base_config;
@@ -85,13 +88,18 @@ namespace hack
break;
}
if (!m_no_file)
ss << utils::color::green << m_location.file_name() << ":" << utils::color::reset;
if (m_on_file)
{
if (m_on_full_path)
ss << utils::color::green << m_location.file_name() << ":" << utils::color::reset;
else
ss << utils::color::green << std::filesystem::path{ m_location.file_name() }.filename().string() << ":" << utils::color::reset;
}
if (!m_no_func)
if (m_on_func)
ss << utils::color::italic << utils::color::yellow<< m_location.function_name() << utils::color::reset;
if (!m_no_row)
if (m_on_row)
ss << utils::color::bold << utils::color::blue << "[" << m_location.line() << "] " << utils::color::reset;
std::cout << ss.str();
@@ -302,9 +310,10 @@ namespace hack
std::source_location m_location;
std::size_t m_count = 0;
std::string m_devider = m_base_config.m_devider;
bool m_no_func = m_base_config.m_no_func;
bool m_no_file = m_base_config.m_no_file;
bool m_no_row = m_base_config.m_no_row;
bool m_on_func = m_base_config.m_on_func;
bool m_on_full_path = m_base_config.m_on_full_path;
bool m_on_file = m_base_config.m_on_file;
bool m_on_row = m_base_config.m_on_row;
bool m_bool_as_number = m_base_config.m_bool_as_number;
};