//public static bool InitializeLogger(string serviceName, out string strError, string _AgentName)
        //{

        //    strError = String.Empty;
        //    if (IOLog.DefinedLogs != null && IOLog.DefinedLogs.ContainsKey(LOG_ID))
        //        return true;

        //    try
        //    {

        //        fileAutoAppend = Boolean.Parse(WorkerFilesManager._attConfigDBAgent.IniReadValue("FileLogConfiguration", "AutoAppend"));
        //        fileBufferSize = Int32.Parse(WorkerFilesManager._attConfigDBAgent.IniReadValue("FileLogConfiguration", "BufferSize"));
        //        maximumFiles = Int32.Parse(WorkerFilesManager._attConfigDBAgent.IniReadValue("FileLogConfiguration", "MaximumFiles"));
        //        fileLevel = (MessageType)Enum.Parse(typeof(MessageType), WorkerFilesManager._attConfigDBAgent.IniReadValue("FileLogConfiguration", "Level"));
        //        fileExtension = "log";
        //        fileHeaderFile = "                   " + _AgentName + "              " + Environment.NewLine +
        //                         "==                      Version : 1.0.0                        ==" + Environment.NewLine +
        //                         "==                   Build : " + DateCompiled().ToString("yyyyMMdd") + "                        ==" + Environment.NewLine +
        //                         "==           Copyright © 2020 Integration Objects         ==";

        //        FileLogConfiguration file = new FileLogConfiguration();
        //        file.AutoAppend = fileAutoAppend;
        //        file.BufferSize = fileBufferSize;
        //        file.FileName = serviceName;
        //        file.MaximumFiles = maximumFiles;
        //        file.HeaderFile = fileHeaderFile;
        //        file.Level = fileLevel;
        //        file.AutoSaveTimeOut = 10;
        //        AgentName = _AgentName;
        //        file.FolderPath = AppDomain.CurrentDomain.BaseDirectory;

        //        //myLog = new IOLog("IOLOG062011123MBO2010", null, file, null, true, LOG_ID);
        //        //  myLog = new IOLog("IOLOG062011123MBO2010", null, file, null, true );
        //        IOLog.TraceSystemInformations();
        //        return true;
        //    }
        //    catch (Exception objException)
        //    {
        //        strError = AgentExceptions.GetExceptionMessage(objException);
        //        return false;
        //    }
        //}
        public static void TraceLog(MessageType enumMessageType, string strText)
        {
            try
            {
                string strError;
                IOLog.TraceLog(AgentName, strText, enumMessageType);
                string loglevel = string.Empty;
                switch (enumMessageType)
                {
                case MessageType.Control:
                    loglevel = "Control";
                    break;

                case MessageType.Error:
                    loglevel = "Error";
                    break;

                case MessageType.Warning:
                    loglevel = "Warning";
                    break;

                case MessageType.Inform:
                    loglevel = "Inform";
                    break;

                case MessageType.Debug:
                    loglevel = "Debug";
                    break;
                }
                if (enumMessageType == MessageType.Control || enumMessageType == MessageType.Error)
                {
                    SIOTHLogMessage logMessage = new SIOTHLogMessage()
                    {
                        LogDate = DateTime.Now, LogLevel = loglevel, LogSource = AgentName, Message = strText
                    };
                    if (ZMQLogPublisher != null)
                    {
                        ZMQLogPublisher.PublishData(JsonConvert.SerializeObject(logMessage), "SIOTH##LogTopic", out strError);

                        if (!string.IsNullOrEmpty(strError))
                        {
                            WorkerLogger.TraceLog(MessageType.Error, "Error occurred while publishing log message To SIOTH Logging System");
                        }
                    }
                }
            }
            catch
            {
                // ignored
            }
        }
        //public static void TraceLog(MessageType enumMessageType, string strText,bool ToBeArchived)
        //{
        //    try
        //    {
        //        string strError;
        //        //Always log message to File
        //        IOLog.TraceLog(AgentName, strText, enumMessageType);
        //        if (ToBeArchived)
        //        {
        //            // Publish message To Kafka Topic
        //            string loglevel = string.Empty;
        //            switch (enumMessageType)
        //            {
        //                case MessageType.Control:
        //                    loglevel = "Control";
        //                    break;
        //                case MessageType.Error:
        //                    loglevel = "Error";
        //                    break;
        //                case MessageType.Warning:
        //                    loglevel = "Warning";
        //                    break;
        //                case MessageType.Inform:
        //                    loglevel = "Inform";
        //                    break;
        //                case MessageType.Debug:
        //                    loglevel = "Debug";
        //                    break;

        //            }
        //            SIOTHLogMessage logMessage = new SIOTHLogMessage() { LogDate = DateTime.Now, LogLevel = loglevel, LogSource = AgentName, Message = strText };

        //            ZMQLogPublisher.PublishData(JsonConvert.SerializeObject(logMessage), "SIOTH##LogTopic", out strError);

        //            if (!string.IsNullOrEmpty(strError))
        //            {
        //                IOLog.TraceLog(AgentName, "Error occurred while publishing log message To SIOTH Logging System", MessageType.Error);
        //            }
        //            //UtilClass.CreateLogMessageObject(loglevel, strText, AgentName, DateTime.Now);
        //        }

        //    }
        //    catch
        //    {
        //        // ignored
        //    }
        //}
        //public static void TraceLog(MessageType messageType, string Message, string Source)
        //{
        //    try
        //    {
        //        IOLog.TraceLog($"[{Source}]", Message, messageType);
        //    }
        //    catch
        //    {
        //        // ignored
        //    }
        //}
        //public static void TraceLog(MessageType enumMessageType, string strText, bool ToBeArchived, string Source)
        //{
        //    try
        //    {
        //        string strError;
        //        //Always log message to File
        //        IOLog.TraceLog($"[{Source}]", strText, enumMessageType);
        //        if (ToBeArchived)
        //        {
        //            // Publish message To Kafka Topic
        //            string loglevel = string.Empty;
        //            switch (enumMessageType)
        //            {
        //                case MessageType.Control:
        //                    loglevel = "Control";
        //                    break;
        //                case MessageType.Error:
        //                    loglevel = "Error";
        //                    break;
        //                case MessageType.Warning:
        //                    loglevel = "Warning";
        //                    break;
        //                case MessageType.Inform:
        //                    loglevel = "Inform";
        //                    break;
        //                case MessageType.Debug:
        //                    loglevel = "Debug";
        //                    break;

        //            }
        //            SIOTHLogMessage logMessage = new SIOTHLogMessage() { LogDate = DateTime.Now, LogLevel = loglevel, LogSource = AgentName, Message = strText };

        //            ZMQLogPublisher.PublishData(JsonConvert.SerializeObject(logMessage), "SIOTH##LogTopic", out strError);

        //            if (!string.IsNullOrEmpty(strError))
        //            {
        //                IOLog.TraceLog(AgentName, "Error occurred while publishing log message To SIOTH Logging System", MessageType.Error);
        //            }
        //            //UtilClass.CreateLogMessageObject(loglevel, strText, AgentName, DateTime.Now);
        //        }

        //    }
        //    catch
        //    {
        //        // ignored
        //    }
        //}
        #endregion

        #region DHIBI Enhancements
        internal static void SendSIOTHLogMessage(string loglevel, string strText)
        {
            string          strError;
            SIOTHLogMessage logMessage = new SIOTHLogMessage()
            {
                LogDate = DateTime.Now, LogLevel = loglevel, LogSource = AgentName, Message = strText
            };

            ZMQLogPublisher.PublishData(JsonConvert.SerializeObject(logMessage), "SIOTH##LogTopic", out strError);

            if (!string.IsNullOrEmpty(strError))
            {
                IOLog.TraceLog(AgentName, "Error occurred while publishing log message To SIOTH Logging System", MessageType.Error);
            }
        }