using log4net.Config; using log4net; using Microsoft.Extensions.Configuration; using System.Text; using log4net.Repository; namespace DataAcquisition { internal class Program { static ILoggerRepository LoggerRepository; static ILog log; static IConfigurationRoot configuration; static async Task Main(string[] args) { LoggerRepository = LogManager.CreateRepository("DataAcquisition"); XmlConfigurator.ConfigureAndWatch(LoggerRepository, new FileInfo("App.config")); log = LogManager.GetLogger(LoggerRepository.Name, typeof(Program)); Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); // 授权示例 调用一次即可 call only once if (!HslCommunication.Authorization.SetAuthorizationCode("d8868ab9-4494-4056-98c6-b669e2434e25")) { return; } configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile(path: "appsettings.json", optional: true, reloadOnChange: true) .Build(); var connectionString = configuration.GetConnectionString("ConnectionString"); using (var collector = new ModbusDataCollector(connectionString)) { // 订阅日志事件 collector.LogMessage += (sender, message) => { Console.WriteLine(message); log.Info(message); }; // 初始化并启动采集 await collector.InitializeAsync(); // 模拟运行一段时间后刷新配置 await Task.Delay(TimeSpan.FromMinutes(30)); Console.WriteLine("正在刷新设备配置..."); await collector.RefreshDevicesAsync(); Console.WriteLine("按任意键退出..."); Console.ReadKey(); } //Console.WriteLine("启动服务"); //log.Info("启动服务"); //Console.ReadKey(); } } }