74 lines
1.7 KiB
C#
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
|
|
}
|
|
|
|
}
|
|
} |