#define ENALBE_LOGGING using System; using System.IO; using UnityEngine; namespace BrewMonster { public class BMLogger { // File logging callback - set by SessionFileLogger private static Action s_FileLogCallback = null; public static void SetFileLogCallback(Action callback) { s_FileLogCallback = callback; } public static void ClearFileLogCallback() { s_FileLogCallback = null; } private static void WriteToFile(string message) { if (s_FileLogCallback != null) { try { s_FileLogCallback(message); } catch (Exception ex) { Debug.LogError($"BMLogger: Failed to write to file: {ex.Message}"); } } } public static void Log(string message) { #if ENALBE_LOGGING Debug.Log(message); WriteToFile(message); #endif } public static void LogError(string message) { #if ENALBE_LOGGING Debug.LogError(message); WriteToFile(message); #endif } public static void LogWarning(string message) { #if ENALBE_LOGGING Debug.LogWarning(message); WriteToFile(message); #endif } public static void LogMono(object source, string message) { #if ENALBE_LOGGING && UNITY_EDITOR if (DebugRegistry.IsEnabled(source)) { string fullMessage = $"[{source}] {message}"; UnityEngine.Debug.LogError(fullMessage); WriteToFile(fullMessage); } #endif } } }