Merge branch 'master' of https://github.com/xenia-project/xenia into canary_experimental
This commit is contained in:
@@ -469,16 +469,18 @@ void ShutdownLogging() {
|
||||
}
|
||||
|
||||
static int g_saved_loglevel = static_cast<int>(LogLevel::Disabled);
|
||||
void logging::internal::ToggleLogLevel() {
|
||||
void logging::ToggleLogLevel() {
|
||||
auto swap = g_saved_loglevel;
|
||||
|
||||
g_saved_loglevel = cvars::log_level;
|
||||
cvars::log_level = swap;
|
||||
}
|
||||
bool logging::internal::ShouldLog(LogLevel log_level, uint32_t log_mask) {
|
||||
|
||||
bool logging::ShouldLog(LogLevel log_level, uint32_t log_mask) {
|
||||
return static_cast<int32_t>(log_level) <= cvars::log_level &&
|
||||
(log_mask & cvars::log_mask) == 0;
|
||||
}
|
||||
|
||||
uint32_t logging::internal::GetLogLevel() { return cvars::log_level; }
|
||||
|
||||
std::pair<char*, size_t> logging::internal::GetThreadBuffer() {
|
||||
@@ -496,7 +498,7 @@ void logging::internal::AppendLogLine(LogLevel log_level,
|
||||
|
||||
void logging::AppendLogLine(LogLevel log_level, const char prefix_char,
|
||||
const std::string_view str, uint32_t log_mask) {
|
||||
if (!internal::ShouldLog(log_level, log_mask) || !str.size()) {
|
||||
if (!ShouldLog(log_level, log_mask) || !str.size()) {
|
||||
return;
|
||||
}
|
||||
logger_->AppendLine(xe::threading::current_thread_id(), prefix_char,
|
||||
|
||||
@@ -45,6 +45,7 @@ enum : uint32_t {
|
||||
Cpu = 4,
|
||||
};
|
||||
}
|
||||
|
||||
class LogSink {
|
||||
public:
|
||||
virtual ~LogSink() = default;
|
||||
@@ -81,14 +82,21 @@ void InitializeLogging(const std::string_view app_name);
|
||||
void ShutdownLogging();
|
||||
|
||||
namespace logging {
|
||||
namespace internal {
|
||||
|
||||
constexpr char kPrefixCharError = '!';
|
||||
constexpr char kPrefixCharWarning = 'w';
|
||||
constexpr char kPrefixCharInfo = 'i';
|
||||
constexpr char kPrefixCharDebug = 'd';
|
||||
|
||||
void ToggleLogLevel();
|
||||
|
||||
//bool ShouldLog(LogLevel log_level);
|
||||
bool ShouldLog(LogLevel log_level,
|
||||
uint32_t log_mask = xe::LogSrc::Uncategorized);
|
||||
namespace internal {
|
||||
|
||||
uint32_t GetLogLevel();
|
||||
std::pair<char*, size_t> GetThreadBuffer();
|
||||
|
||||
XE_NOALIAS
|
||||
void AppendLogLine(LogLevel log_level, const char prefix_char, size_t written);
|
||||
|
||||
@@ -167,26 +175,26 @@ struct LoggerBatch {
|
||||
|
||||
template <typename... Args>
|
||||
XE_COLD void XELOGE(std::string_view format, const Args&... args) {
|
||||
xe::logging::AppendLogLineFormat(xe::LogSrc::Uncategorized,
|
||||
xe::LogLevel::Error, '!', format, args...);
|
||||
xe::logging::AppendLogLineFormat(xe::LogSrc::Uncategorized, xe::LogLevel::Error,
|
||||
xe::logging::kPrefixCharError, format, args...);
|
||||
}
|
||||
|
||||
template <typename... Args>
|
||||
XE_COLD void XELOGW(std::string_view format, const Args&... args) {
|
||||
xe::logging::AppendLogLineFormat(xe::LogSrc::Uncategorized,
|
||||
xe::LogLevel::Warning, 'w', format, args...);
|
||||
xe::logging::AppendLogLineFormat(xe::LogSrc::Uncategorized, xe::LogLevel::Warning,
|
||||
xe::logging::kPrefixCharWarning, format, args...);
|
||||
}
|
||||
|
||||
template <typename... Args>
|
||||
void XELOGI(std::string_view format, const Args&... args) {
|
||||
xe::logging::AppendLogLineFormat(xe::LogSrc::Uncategorized,
|
||||
xe::LogLevel::Info, 'i', format, args...);
|
||||
xe::logging::AppendLogLineFormat(xe::LogSrc::Uncategorized, xe::LogLevel::Info,
|
||||
xe::logging::kPrefixCharInfo, format, args...);
|
||||
}
|
||||
|
||||
template <typename... Args>
|
||||
void XELOGD(std::string_view format, const Args&... args) {
|
||||
xe::logging::AppendLogLineFormat(xe::LogSrc::Uncategorized,
|
||||
xe::LogLevel::Debug, 'd', format, args...);
|
||||
xe::logging::AppendLogLineFormat(xe::LogSrc::Uncategorized, xe::LogLevel::Debug,
|
||||
xe::logging::kPrefixCharDebug, format, args...);
|
||||
}
|
||||
|
||||
template <typename... Args>
|
||||
|
||||
Reference in New Issue
Block a user