[common/logging] Simplify logging logic and fix issues when logging before system is created (#3688)
Some checks are pending
tx-src / sources (push) Waiting to run
Check Strings / check-strings (push) Waiting to run

- our logging code was bigger than spdlog itself, why???? just keep it simple
- fix issues when logging before logging system is even started
- removes the "initialized logging twice" issue
- removes uneeded indirection in file logging
- uses direct formatting instead of jumping hoopla-around the fmt::format() ressult
- code duplication and dead code removal as usual

I did explore dup2() but I think it's not worth the hassle
I did try `fwopen()` but it's better if things are just kept as-is.

there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file

now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING

Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: DraVee <chimera@dravee.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
This commit is contained in:
lizzie 2026-03-12 18:29:15 +01:00 committed by crueter
parent 2896fa3835
commit 395613b01f
No known key found for this signature in database
GPG key ID: 425ACD2D4830EBC6
282 changed files with 1355 additions and 1457 deletions

104
src/common/log_classes.inc Normal file
View file

@ -0,0 +1,104 @@
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
/// Macro listing all log classes. Code should define CLS and SUB as desired before invoking this.
CLS(Log)
CLS(Common)
SUB(Common, Filesystem)
SUB(Common, Memory)
CLS(Core)
SUB(Core, ARM)
SUB(Core, Timing)
CLS(Config)
CLS(Debug)
SUB(Debug, Emulated)
SUB(Debug, GPU)
SUB(Debug, Breakpoint)
SUB(Debug, GDBStub)
CLS(Kernel)
SUB(Kernel, SVC)
CLS(Service)
SUB(Service, ACC)
SUB(Service, Audio)
SUB(Service, AM)
SUB(Service, AOC)
SUB(Service, APM)
SUB(Service, ARP)
SUB(Service, BCAT)
SUB(Service, BPC)
SUB(Service, BGTC)
SUB(Service, BTDRV)
SUB(Service, BTM)
SUB(Service, Capture)
SUB(Service, ERPT)
SUB(Service, ETicket)
SUB(Service, EUPLD)
SUB(Service, Fatal)
SUB(Service, FGM)
SUB(Service, Friend)
SUB(Service, FS)
SUB(Service, GRC)
SUB(Service, HID)
SUB(Service, IRS)
SUB(Service, JIT)
SUB(Service, LBL)
SUB(Service, LDN)
SUB(Service, LDR)
SUB(Service, LM)
SUB(Service, Migration)
SUB(Service, Mii)
SUB(Service, MM)
SUB(Service, MNPP)
SUB(Service, NCM)
SUB(Service, NFC)
SUB(Service, NFP)
SUB(Service, NGC)
SUB(Service, NIFM)
SUB(Service, NIM)
SUB(Service, NOTIF)
SUB(Service, NPNS)
SUB(Service, NS)
SUB(Service, NVDRV)
SUB(Service, Nvnflinger)
SUB(Service, OLSC)
SUB(Service, PCIE)
SUB(Service, PCTL)
SUB(Service, PCV)
SUB(Service, PM)
SUB(Service, PREPO)
SUB(Service, PSC)
SUB(Service, PTM)
SUB(Service, SET)
SUB(Service, SM)
SUB(Service, SPL)
SUB(Service, SSL)
SUB(Service, TCAP)
SUB(Service, Time)
SUB(Service, USB)
SUB(Service, VI)
SUB(Service, WLAN)
CLS(HW)
SUB(HW, Memory)
SUB(HW, LCD)
SUB(HW, GPU)
SUB(HW, AES)
CLS(IPC)
CLS(Frontend)
CLS(Render)
SUB(Render, Software)
SUB(Render, OpenGL)
SUB(Render, Vulkan)
CLS(Shader)
SUB(Shader, SPIRV)
SUB(Shader, GLASM)
SUB(Shader, GLSL)
CLS(Audio)
SUB(Audio, DSP)
SUB(Audio, Sink)
CLS(Input)
CLS(Network)
CLS(Loader)
CLS(CheatEngine)
CLS(Crypto)
CLS(WebService)