1#include "ConsoleLogger.h"
3#include "../Platform/DebugUtils.h"
13Cogs::Logging::ConsoleLogger::ConsoleLogger() {
16#if defined( __APPLE__ )
21Cogs::Logging::ConsoleLogger::~ConsoleLogger() {
33void Cogs::Logging::ConsoleLogger::outputMessage(
const std::string& prefix,
const Message& message) {
34 thread_local static char buffer[500] = {};
35 const char *cat = use_color ? getCategoryNameColor(message.category) : getCategoryName(message.category);
37 if(outputFilenames && message.file) {
38 n = std::snprintf(buffer,
sizeof(buffer) - 1,
"[%s][%s][%s:%d]%s ", cat, message.source.c_str(), message.file, message.line, prefix.c_str());
41 n = std::snprintf(buffer,
sizeof(buffer) - 1,
"[%s][%s]%s ", cat, message.source.c_str(), prefix.c_str());
46 n = std::min(n,
int(
sizeof(buffer)));
48 LockGuard lock(mutex);
50 std::fwrite(buffer, 1, n, stderr);
51 std::fwrite(message.message.c_str(), 1, message.message.size(), stderr);
52 std::fwrite(
"\n", 1, 1, stderr);
Console logger that supports splitting log lines between stdout and stderr according to severity.
COGSFOUNDATION_API bool isBeingDebugged()
Return true if the application is running under a debugger.