using log4net; using log4net.Config; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.Json; using System; using System.Collections.Generic; using System.Configuration; using System.IO; using System.Reflection; using System.Text; using System.Xml; using ConvertLog.thread; using log4net.Repository.Hierarchy; using System.Data; namespace ConvertLog.common { public class ConfigData { public static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); public static string AppId = ""; public static string pathFileImport = ""; public static IDictionary threadIsFree; public static IDictionary languageMyToEn; public static IDictionary languageEntoMy; public static ProcessFile _threadFile; public static ProcessImport _threadFileImport; public static ProcessImortEnd _threadFileImportEnd; public static IDictionary> _arrtotal; public static Queue _ImportQueue; public static bool loadOK = false; public static string result = ""; public static string GetValuesAppSetting(string key, string subkey) { IConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json")); var root = builder.Build(); var sampleConnectionString = root.GetSection(key)[subkey]; return sampleConnectionString; } public static void LoadConfigData() { try { //log4net.Config.XmlConfigurator.Configure(); //var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly()); //XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config")); XmlDocument log4netConfig = new XmlDocument(); log4netConfig.Load(File.OpenRead("log4net.config")); var repo = log4net.LogManager.CreateRepository(Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy)); log4net.Config.XmlConfigurator.Configure(repo, log4netConfig["log4net"]); log.Info("start loaf ConfigData"); loadOK = false; AppId = GetValuesAppSetting("app", "AppId"); pathFileImport = GetValuesAppSetting("app", "pathFileImport"); _ImportQueue = new Queue(); _arrtotal = new Dictionary>(); threadIsFree = new Dictionary(); languageEntoMy = new Dictionary(); languageMyToEn = new Dictionary(); _threadFile = new ProcessFile(); string sName1 = "_threadFile Stard: " + Guid.NewGuid().ToString(); _threadFile.Start(sName1); log.Info("start success thread " + sName1); _threadFileImportEnd = new ProcessImortEnd(); string sName2 = "_threadFileImportEnd Stard: " + Guid.NewGuid().ToString(); _threadFileImportEnd.Start(sName2); log.Info("start success thread " + sName2); for (int i = 0; i < 10; i++) { _threadFileImport = new ProcessImport(); string sNamei = "_threadFileImport " + i.ToString() + " Stard: " + Guid.NewGuid().ToString(); _threadFileImport.Start(i); log.Info("start success thread " + sNamei); threadIsFree.Add(i, "1"); } result = ""; log.Info("load vaiable success"); loadOK = true; } catch (Exception ex) { log.Info("Load ConfigData err: "+ ex.ToString()); } } public static void WriteLineAppendTextFile(string sFileName, string sLine) { try { StreamWriter sw = null; if (File.Exists(sFileName)) sw = File.AppendText(sFileName); else sw = File.CreateText(sFileName); sw.WriteLine(sLine); sw.Close(); } catch { //MessageBox.Show(ex1.Message); } } } }