public static ILogPipline CreateLogPipline(this LogFactory fac, string pipName) { ILogPipline pip = new LogPipline(fac._piplines.Count, pipName); fac._piplines.Add(pip); return(pip); }
public void Test1() { var logFactory = LogFactoryEntry.GetLogFactory(); LogPipline pip = new LogPipline(); Assert.True(logFactory.TryAddLogPipline(pip)); CancellationToken token = new CancellationToken(false); Task task = pip.ExecuteAsyncWriteLog(token); tacdsk.Start(); Assert.False(task.IsCanceled); Assert.False(task.IsCompleted); }
public static async Task ExecuteAsyncWriteLog(this LogPipline pipline, CancellationToken stoppingToken) { StreamWriter sw = File.Exists(pipline.LogFilePath) ? File.AppendText(pipline.LogFilePath) : File.CreateText(pipline.LogFilePath); int idx = -1; while (!stoppingToken.IsCancellationRequested) { while (++idx < pipline.MsgCount()) { sw.WriteLine(pipline[idx].LogString()); } await Task.Delay(1000, stoppingToken); } sw.Dispose(); }
public static void RunLogPipline(this LogFactory fac, LogPipline pipline, CancellationToken stoppingToken) { fac._pipTasks.Add(pipline.PiplineNum, pipline.ExecuteAsyncWriteLog(stoppingToken)); }