public async Task Log(WorkflowLogLevel level, string message, Guid instanceId) { if (message.Length > 4000) { message = $"{message.Substring(0, 1900)} ... {message.Length - 1900} characters cut due to excessive length."; } Console.WriteLine($"{level}:: {message}"); try { if (con != null) { await con.InvokeAsync("ConsoleSend", level.ToString().ToLower(), message, instanceId.ToString()); } } catch (Exception ex) { await con.DisposeAsync(); con = null; await Log(WorkflowLogLevel.Error, ex.Message, instanceId); await Log(level, message, instanceId); } Console.ForegroundColor = ConsoleColor.White; }
public async Task Log(WorkflowLogLevel level, string message) { try { await OnLog?.Invoke(level, message); } catch (Exception ex) { OnLog = null; Context.Log(WorkflowLogLevel.Warning, "Realtime processing has failed:\n" + ex.Message + "\nLog streaming has been disabled."); } }