Files
test/Assets/PerfectWorld/Scripts/Common/Logger.cs
2026-02-26 15:01:46 +07:00

74 lines
1.7 KiB
C#

#define ENALBE_LOGGING
using System;
using System.IO;
using UnityEngine;
namespace BrewMonster
{
public class BMLogger
{
// File logging callback - set by SessionFileLogger
private static Action<string> s_FileLogCallback = null;
public static void SetFileLogCallback(Action<string> 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
}
}
}