fix logger stacktrase
This commit is contained in:
@@ -31,16 +31,17 @@ auto main(int argc, char *argv[]) -> int
|
|||||||
for (int i = 0; i < 10; ++i) rb.put(i);
|
for (int i = 0; i < 10; ++i) rb.put(i);
|
||||||
|
|
||||||
hack::log().set_devider(", ");
|
hack::log().set_devider(", ");
|
||||||
hack::log().on_func();
|
|
||||||
hack::log()(1, i, 3.1f, f, 4.3, d, "asdf");
|
hack::log()(1, i, 3.1f, f, 4.3, d, "asdf");
|
||||||
|
|
||||||
hack::log().set_devider(" = ");
|
hack::log().set_devider(" = ");
|
||||||
|
hack::log().on_full_path();
|
||||||
hack::log()(1, i, 3.1f, f, 4.3, d, "asdf");
|
hack::log()(1, i, 3.1f, f, 4.3, d, "asdf");
|
||||||
hack::log().reset();
|
hack::log().reset();
|
||||||
hack::log()(1, i, 3.1f, f, 4.3, d, "asdf");
|
hack::log()(1, i, 3.1f, f, 4.3, d, "asdf");
|
||||||
hack::log().set_devider(", ");
|
hack::log().set_devider(", ");
|
||||||
hack::log().on_func();
|
hack::log().on_func();
|
||||||
hack::log().on_file();
|
hack::log().on_file(false);
|
||||||
hack::log().on_row();
|
hack::log().on_row(false);
|
||||||
hack::log()(vs);
|
hack::log()(vs);
|
||||||
hack::log()(l);
|
hack::log()(l);
|
||||||
hack::log()(df);
|
hack::log()(df);
|
||||||
@@ -59,6 +60,7 @@ auto main(int argc, char *argv[]) -> int
|
|||||||
hack::log().set_devider(", ");
|
hack::log().set_devider(", ");
|
||||||
hack::log()(sti, 123, true);
|
hack::log()(sti, 123, true);
|
||||||
hack::log().reset();
|
hack::log().reset();
|
||||||
|
hack::log().on_full_path();
|
||||||
hack::log()("log", 123, sti, false, 1.8f, vs);
|
hack::log()("log", 123, sti, false, 1.8f, vs);
|
||||||
|
|
||||||
hack::warn()("warn");
|
hack::warn()("warn");
|
||||||
|
|||||||
@@ -22,16 +22,18 @@ namespace hack
|
|||||||
public:
|
public:
|
||||||
void set_location(std::source_location location) { m_location = location; }
|
void set_location(std::source_location location) { m_location = location; }
|
||||||
void set_devider(std::string devider) { m_devider = devider; }
|
void set_devider(std::string devider) { m_devider = devider; }
|
||||||
void on_file(bool v = false) { m_no_file = v; }
|
void on_file(bool v = true) { m_on_file = v; }
|
||||||
void on_func(bool v = false) { m_no_func = v; };
|
void on_full_path(bool v = true) { m_on_full_path = v; }
|
||||||
void on_row(bool v = false) { m_no_row = v; }
|
void on_func(bool v = true) { m_on_func = v; };
|
||||||
void on_info(bool v = false) { on_file(); on_func(); on_row(); }
|
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 bool_as_number(bool v = true) { m_bool_as_number = v; }
|
||||||
void reset()
|
void reset()
|
||||||
{
|
{
|
||||||
m_no_file = m_base_config.m_no_file;
|
m_on_file = m_base_config.m_on_file;
|
||||||
m_no_func = m_base_config.m_no_func;
|
m_on_full_path = m_base_config.m_on_full_path;
|
||||||
m_no_row = m_base_config.m_no_row;
|
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_devider = m_base_config.m_devider;
|
||||||
m_bool_as_number = m_base_config.m_bool_as_number;
|
m_bool_as_number = m_base_config.m_bool_as_number;
|
||||||
}
|
}
|
||||||
@@ -54,9 +56,10 @@ namespace hack
|
|||||||
// настройки по умолчанию
|
// настройки по умолчанию
|
||||||
struct config
|
struct config
|
||||||
{
|
{
|
||||||
bool m_no_file = true; // показывать/не показывать название файла/пути в выоде логов
|
bool m_on_file = true; // показывать/не показывать название файла/пути в выоде логов
|
||||||
bool m_no_func = true; // показывать/не показывать название функции в выоде логов
|
bool m_on_full_path = false; // показывать/не показывать название файла/пути в выоде логов
|
||||||
bool m_no_row = false; // показывать/не показывать номер строки в выоде логов
|
bool m_on_func = false; // показывать/не показывать название функции в выоде логов
|
||||||
|
bool m_on_row = true; // показывать/не показывать номер строки в выоде логов
|
||||||
bool m_bool_as_number = false; // показывет bool как число или как текст (0, false);
|
bool m_bool_as_number = false; // показывет bool как число или как текст (0, false);
|
||||||
std::string m_devider = " "; // разделитель по умолчанию
|
std::string m_devider = " "; // разделитель по умолчанию
|
||||||
} m_base_config;
|
} m_base_config;
|
||||||
@@ -85,13 +88,18 @@ namespace hack
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_no_file)
|
if (m_on_file)
|
||||||
ss << utils::color::green << m_location.file_name() << ":" << utils::color::reset;
|
{
|
||||||
|
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;
|
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;
|
ss << utils::color::bold << utils::color::blue << "[" << m_location.line() << "] " << utils::color::reset;
|
||||||
|
|
||||||
std::cout << ss.str();
|
std::cout << ss.str();
|
||||||
@@ -302,9 +310,10 @@ namespace hack
|
|||||||
std::source_location m_location;
|
std::source_location m_location;
|
||||||
std::size_t m_count = 0;
|
std::size_t m_count = 0;
|
||||||
std::string m_devider = m_base_config.m_devider;
|
std::string m_devider = m_base_config.m_devider;
|
||||||
bool m_no_func = m_base_config.m_no_func;
|
bool m_on_func = m_base_config.m_on_func;
|
||||||
bool m_no_file = m_base_config.m_no_file;
|
bool m_on_full_path = m_base_config.m_on_full_path;
|
||||||
bool m_no_row = m_base_config.m_no_row;
|
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;
|
bool m_bool_as_number = m_base_config.m_bool_as_number;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user