mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-08-12 11:22:00 -04:00
50 lines
1.4 KiB
C++
50 lines
1.4 KiB
C++
#include "dusk/logging.h"
|
|
|
|
#include <string_view>
|
|
|
|
#include "tracy/Tracy.hpp"
|
|
|
|
bool StubLogEnabled = true;
|
|
|
|
using namespace std::literals::string_view_literals;
|
|
|
|
namespace {
|
|
constexpr std::string_view kStubFragments[] = {
|
|
"is a stub"sv,
|
|
"Unimplemented: BP register"sv,
|
|
"Unhandled BP register"sv,
|
|
"Unhandled XF register"sv,
|
|
"but selective updates are not implemented"sv,
|
|
};
|
|
|
|
bool is_for_stub_log(const std::string_view message) {
|
|
for (const auto& fragment : kStubFragments) {
|
|
if (message.find(fragment) != std::string_view::npos) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool divert_stub_messages(const borealis::log::Message& message) {
|
|
ZoneScoped;
|
|
if (!StubLogEnabled || !is_for_stub_log(message.text)) {
|
|
return false;
|
|
}
|
|
dusk::SendToStubLog(message.level, message.module, message.text);
|
|
return true;
|
|
}
|
|
} // namespace
|
|
|
|
void dusk::InitializeLogging(
|
|
const std::filesystem::path& cacheDir, const borealis::cli::StandardOptions& standard) {
|
|
borealis::log::Options options{};
|
|
options.level = borealis::LogLevel::Debug;
|
|
options.fileDirectory = cacheDir.empty() ? std::filesystem::path{} : cacheDir / "logs";
|
|
options.filePrefix = "dusklight";
|
|
options.legacyFilePrefixes = {"dusk"};
|
|
options.divert = &divert_stub_messages;
|
|
standard.apply_to(options);
|
|
borealis::log::init(options);
|
|
}
|