Files
I150/srcs/RobotNet10/Commons/RobotNet10.ScriptEngine/Models/LoggerMission.cs
2026-07-03 16:37:12 +07:00

49 lines
1.5 KiB
C#

using RobotNet10.ScriptEngine.HubContexts;
namespace RobotNet10.ScriptEngine.Models;
public class LoggerMission(Guid id, ConsoleHubContext hubContext) : RobotNet10.Script.ILogger
{
private string log = "";
private readonly Mutex mutexLog = new();
public string GetLog()
{
mutexLog.WaitOne();
var result = log;
log = ""; // Clear log after reading
mutexLog.ReleaseMutex();
return result;
}
public void LogError(string message)
{
hubContext.LogErrorToMission(id, message);
mutexLog.WaitOne();
// Format: [LEVEL] YYYY-MM-DDTHH:mm:ss.fffZ | message
log += $"[ERROR] {DateTime.UtcNow:yyyy-MM-ddTHH:mm:ss.fffZ} | {message}{Environment.NewLine}";
mutexLog.ReleaseMutex();
}
public void LogInfo(string message)
{
hubContext.LogInfoToMission(id, message);
mutexLog.WaitOne();
// Format: [LEVEL] YYYY-MM-DDTHH:mm:ss.fffZ | message
log += $"[INFO] {DateTime.UtcNow:yyyy-MM-ddTHH:mm:ss.fffZ} | {message}{Environment.NewLine}";
mutexLog.ReleaseMutex();
}
public void LogWarning(string message)
{
hubContext.LogWarningToMission(id, message);
mutexLog.WaitOne();
// Format: [LEVEL] YYYY-MM-DDTHH:mm:ss.fffZ | message
log += $"[WARN] {DateTime.UtcNow:yyyy-MM-ddTHH:mm:ss.fffZ} | {message}{Environment.NewLine}";
mutexLog.ReleaseMutex();
}
}