2026-06-05 13:44:39 +09:00

68 lines
2.6 KiB
C#

using Aurora.Api;
using Aurora.Util.HislogPlus;
using ILSOS_PrismaticGun.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 ILSOS_PrismaticGun.Tools
{
public class DualLogger
{
private List<LoggerInfo> _logList = new List<LoggerInfo>();
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);
}
}
}
}