From 170521aba613d4f200c72191b8546c43f0157564 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Fri, 8 May 2026 09:54:13 +0200 Subject: [PATCH] feat(log): afegeix Log::raw() per a marcadors sense prefix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Recupera el comportament històric dels marcadors "Game start" i "Bye!" que han de sortir pelats (no com a "App: Game start"). Log::raw(level, msg) és una variant prima sobre SDL_LogMessage que no anteposa cap tag i cau a SDL_LOG_CATEGORY_APPLICATION (filtrable per AEE_LOG global). Co-Authored-By: Claude Opus 4.7 (1M context) --- source/main.cpp | 5 +++-- source/utils/log.cpp | 5 +++++ source/utils/log.hpp | 5 +++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/source/main.cpp b/source/main.cpp index 84b569a..6651884 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -16,7 +16,8 @@ auto SDL_AppInit(void** appstate, int argc, char* argv[]) -> SDL_AppResult { // Logger primer de tot perquè l'arrencada del Director ja emet logs. Log::init(); // Marcador d'inici: ha de ser la PRIMERA línia de log del programa. - Log::info("App", "Game start"); + // `raw` per emetre el text pelat sense el prefix "tag: ". + Log::raw(Log::Level::INFO, "Game start"); // Construïm el Director amb make_unique i l'entreguem en cru a SDL. // El SDL_AppQuit reclamarà la propietat amb un altre unique_ptr (RAII). @@ -45,5 +46,5 @@ void SDL_AppQuit(void* appstate, SDL_AppResult result) { std::unique_ptr director(static_cast(appstate)); } // Marcador de fi: ha de ser l'ÚLTIMA línia de log del programa. - Log::info("App", "Bye!"); + Log::raw(Log::Level::INFO, "Bye!"); } diff --git a/source/utils/log.cpp b/source/utils/log.cpp index 9fa1a63..0eab89f 100644 --- a/source/utils/log.cpp +++ b/source/utils/log.cpp @@ -130,6 +130,11 @@ namespace Log { SDL_LogMessage(categoryFor(tag), toSDL(lvl), "%s", BODY.c_str()); } + void raw(Level lvl, std::string_view msg) { + const std::string TEXT{msg}; + SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, toSDL(lvl), "%s", TEXT.c_str()); + } + void init() { // No toquem cap categoria SDL nativa per defecte: així preservem el // silenci de SDL_LOG_CATEGORY_GPU, RENDER, etc. (default = ERROR), i diff --git a/source/utils/log.hpp b/source/utils/log.hpp index eacc287..193a4c6 100644 --- a/source/utils/log.hpp +++ b/source/utils/log.hpp @@ -32,6 +32,11 @@ namespace Log { // entrega a SDL_LogMessage amb la categoria registrada per al tag. void log(Level lvl, std::string_view tag, std::string_view msg); + // Variant sense prefix de tag — ús reservat per a marcadors literals + // (p. ex. "Game start" / "Bye!"). Cau a SDL_LOG_CATEGORY_APPLICATION, + // així AEE_LOG global encara els pot silenciar. + void raw(Level lvl, std::string_view msg); + template void trace(std::string_view tag, std::format_string fmt, Args&&... args) { log(Level::TRACE, tag, std::format(fmt, std::forward(args)...));