using RemSox.Kernel.Logging; using RemSox.Kernel.Processing; namespace RemSox.Kernel.UI.CLI.Commands; public class ViewProcessLogs : ICommand { public string Name => "logs"; public string Description => "View logs for a process"; public Task ExecuteAsync(string? arguments, Action printLine) { if (int.TryParse(arguments, out int processId)) { IEnumerable logs = ProcessManager.GetProcessLogs(processId); PrintLogs(logs, printLine); } else { IEnumerable logs = ProcessManager.GetLogs(); PrintLogs(logs, printLine); } return Task.CompletedTask; } private static void PrintLogs(IEnumerable logs, Action printLine) { if (!logs.Any()) { printLine("No logs found!"); return; } foreach (LogEntry log in logs) { printLine($"[{log.Timestamp:HH:mm:ss}] [{log.Severity}] {log.Message}"); } } }