using log4net; using log4net.Appender; using log4net.Layout; using log4net.Repository.Hierarchy; using System; using System.Text; using System.Threading.Tasks; namespace SHARP_CLAS_UI { public abstract class Base_Unit { #region Define private ILog Seq_Log; public void Write_Sequence_Log(string message) { if (Seq_Log != null) Seq_Log.Debug($"{message}"); } #endregion #region Property public abstract bool Is_Home_Complete { get; } public abstract bool Is_Exist { get; } public En_Equipment_Mode UnitMode { get { return _unitMode; } set { _unitMode = value; } } #endregion #region Field private string Unit_Name = ""; private En_Equipment_Mode _unitMode; public DateTime sequenceChangedTime; #endregion #region Construct public Base_Unit(string Unit_Name) { this.Unit_Name = Unit_Name; _unitMode = En_Equipment_Mode.Pause; sequenceChangedTime = DateTime.Now; Create_Sequence_logger(); } #endregion #region Function private void Create_Sequence_logger() { Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(); RollingFileAppender rollingAppender = new RollingFileAppender(); PatternLayout layout = new PatternLayout(); hierarchy.Configured = true; rollingAppender.Name = "Seq_RoolingFile"; rollingAppender.LockingModel = new RollingFileAppender.MinimalLock(); rollingAppender.File = $@"D:\Logger\Sequence\{Unit_Name}\"; rollingAppender.AppendToFile = true; rollingAppender.DatePattern = "yyyy\\\\MM\\\\'"+ Unit_Name + "'_dd'.log'"; rollingAppender.RollingStyle = RollingFileAppender.RollingMode.Composite; rollingAppender.MaxSizeRollBackups = 10; rollingAppender.MaximumFileSize = "200MB"; rollingAppender.StaticLogFileName = false; rollingAppender.Encoding = Encoding.UTF8; rollingAppender.PreserveLogFileNameExtension = true; layout = new PatternLayout("%d{yyyy/MM/dd HH:mm:ss.fff}, %m%n"); layout.ActivateOptions(); rollingAppender.Layout = layout; rollingAppender.ActivateOptions(); hierarchy.GetLogger($"Seq_{Unit_Name}"); ILog log = LogManager.GetLogger($"Seq_{Unit_Name}"); Logger l = (Logger)log.Logger; l.Level = log4net.Core.Level.Debug; l.AddAppender(rollingAppender); Seq_Log = LogManager.GetLogger($"Seq_{Unit_Name}"); } /// /// 상태 확인 /// public abstract void Status_Working(); /// /// Sequence 동작 /// public abstract void Sequence_Working(); #endregion } }