using Aurora.Api; using Aurora.Util.HislogPlus; using WeldingCommon.Process; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; namespace WeldingCommon.Tools { public class DualLogger { private List _logList = new List(); public void AddLogger([CallerMemberName] string tag = null, string loggerName = null) { _logList.Add(new LoggerInfo(tag, loggerName)); } public void W(string log, eStage stage) => W(log, Enum.GetName(typeof(eStage), stage)); public void E(string log, eStage stage) => E(log, Enum.GetName(typeof(eStage), stage)); public void I(string log, eStage stage) => I(log, Enum.GetName(typeof(eStage), stage)); public void V(string log, eStage stage) => V(log, Enum.GetName(typeof(eStage), stage)); public void D(string log, eStage stage) => D(log, Enum.GetName(typeof(eStage), stage)); public void W(string log, string target = null) { if (target == null) _logList.ForEach(t => t._log.W(log)); else _logList.Where(t => t._loggerName.Contains(target)).FirstOrDefault()._log.W(log); } public void E(string log, string target = null) { if (target == null) _logList.ForEach(t => t._log.E(log)); else _logList.Where(t => t._loggerName.Contains(target)).FirstOrDefault()._log.E(log); } public void V(string log, string target = null) { if (target == null) _logList.ForEach(t => t._log.V(log)); else _logList.Where(t => t._loggerName.Contains(target)).FirstOrDefault()._log.V(log); } public void I(string log, string target = null) { if (target == null) _logList.ForEach(t => t._log.I(log)); else _logList.Where(t => t._loggerName.Contains(target)).FirstOrDefault()._log.I(log); } public void D(string log, string target = null) { if (target == null) _logList.ForEach(t => t._log.D(log)); else _logList.Where(t => t._loggerName.Contains(target)).FirstOrDefault()._log.D(log); } private class LoggerInfo { public Logger _log; public string _tag; public string _loggerName; public LoggerInfo(string tag, string loggerName) { _tag = tag; _loggerName = loggerName; _log = new Logger(_tag, _loggerName); } } } }