示例#1
0
        public static void Init()
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
                          .AddJsonFile("appsettings.json", false);
            var configuration = builder.Build();

            //加载配置到全局
            GlobalConfig.ConnetionString = configuration.GetValue <string>("DBConfig:ConnetionString");
            GlobalConfig.NatPort         = configuration.GetValue <int>("ServerConfig:NatPort");
            GlobalConfig.ServerPort      = configuration.GetValue <int>("ServerConfig:ServerPort");
            GlobalConfig.DefaultUrl      = configuration.GetValue <string>("ServerConfig:DefaultUrl");
            GlobalConfig.RegRoleId       = configuration.GetValue <string>("ServerConfig:RegRoleId");

            Repository = LogManager.CreateRepository("NETCoreRepository");
            XmlConfigurator.Configure(Repository, new FileInfo("log4net.config"));
            Log4netUtil.LogRepository = Repository;//类库中定义的静态变量
            HandleLog.WriteLog       += (log, isPrint) =>
            {
                if (isPrint)
                {
                    Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss,ffff} {log}");
                }
                Log4netUtil.Info(log);
            };

            Task.Run(() =>
            {
                while (true)
                {
                    //更新假在线的主机
                    using var bll = new ClientBll();
                    var res       = bll.UpdateOfflineClient();
                    HandleLog.WriteLine(res.Message, false);
                    Thread.Sleep(60000);
                }
            });

            var appSettingSetion = configuration.GetSection("AppSettingConfig");
            var appSettingConfig = appSettingSetion.Get <AppSettingConfig>();

            IocUnity.AddSingleton <AppSettingConfig>(appSettingConfig);

            //var setion = configuration.GetSection("SimpleSocketConfig");
            //var simpleConfig = setion.Get<SimpleSocketConfig>();
            //IocUnity.AddSingleton<SimpleSocketConfig>(simpleConfig);

            var loggerSection = configuration.GetSection("LogConfig");
            var logConfig     = loggerSection.Get <LogConfig>();

            logConfig.LogBaseDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, logConfig.LogBaseDir);
            IocUnity.AddSingleton <LogConfig>(logConfig);

            InitAppSetting();
            InitLog();
        }
示例#2
0
        static object lockLog = new object();//日志锁
        public static void Init()
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
                          .AddJsonFile("appsettings.json", false);
            var configuration = builder.Build();

            //加载配置到全局
            GlobalConfig.ConnetionString = configuration.GetValue <string>("DBConfig:ConnetionString");
            GlobalConfig.NatPort         = configuration.GetValue <int>("ServerConfig:NatPort");
            GlobalConfig.ServerPort      = configuration.GetValue <int>("ServerConfig:ServerPort");
            GlobalConfig.DefaultUrl      = configuration.GetValue <string>("ServerConfig:DefaultUrl");
            GlobalConfig.RegRoleId       = configuration.GetValue <string>("ServerConfig:RegRoleId");

            var repository = LogManager.CreateRepository("NETCoreRepository");

            XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
            Log4netUtil.LogRepository = repository;//类库中定义的静态变量
            LogHelper.WriteLog       += (level, log, isPrint) =>
            {
                lock (lockLog)
                {
                    switch (level)
                    {
                    case LogLevel.Debug:
                        Log4netUtil.Debug(log);
                        break;

                    case LogLevel.Information:
                        Console.ForegroundColor = ConsoleColor.Green;
                        Log4netUtil.Info(log);
                        break;

                    case LogLevel.Warning:
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Log4netUtil.Warn(log);
                        break;

                    case LogLevel.Error:
                        Console.ForegroundColor = ConsoleColor.Red;
                        Log4netUtil.Error(log);
                        break;

                    case LogLevel.Critical:
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Log4netUtil.Fatal(log);
                        break;

                    default:
                        Console.ForegroundColor = ConsoleColor.Green;
                        Log4netUtil.Info(log);
                        break;
                    }
                    if (isPrint)
                    {
                        Console.Write(LogHelper.GetString(level));
                        Console.ResetColor();
                        Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss,ffff} {log}");
                    }
                }
            };

            Task.Run(() =>
            {
                while (true)
                {
                    //更新假在线的主机
                    var bll = new ClientBll();
                    var res = bll.UpdateOfflineClient();
                    LogHelper.Info(res.Message, false);
                    Thread.Sleep(60000);
                }
            });

            var appSettingSetion = configuration.GetSection("AppSettingConfig");
            var appSettingConfig = appSettingSetion.Get <AppSettingConfig>();

            AppDomain.CurrentDomain.UnhandledException -= CurrentDomain_UnhandledException;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
        }