HJ212 and Documents
This commit is contained in:
@@ -1,38 +1,56 @@
|
||||
using ModbusTcpToRtu;
|
||||
using Serilog;
|
||||
|
||||
// 配置主机服务,作为 Windows 服务运行
|
||||
IHost host = Host.CreateDefaultBuilder(args).UseWindowsService()
|
||||
// 配置应用程序配置
|
||||
.ConfigureAppConfiguration((hostingContext, config) =>
|
||||
{
|
||||
// 构建配置
|
||||
var configuration = config
|
||||
// 设置配置文件的基础路径
|
||||
.SetBasePath(hostingContext.HostingEnvironment.ContentRootPath)
|
||||
// 添加 appsettings.json 配置文件
|
||||
.AddJsonFile("appsettings.json")
|
||||
// 根据环境变量添加对应的配置文件(开发/生产等)
|
||||
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("DOTNET_ENVIRONMENT") ?? "Production"}.json", true)
|
||||
// 添加环境变量配置
|
||||
.AddEnvironmentVariables()
|
||||
.Build();
|
||||
|
||||
// 设置当前工作目录
|
||||
Directory.SetCurrentDirectory(hostingContext.HostingEnvironment.ContentRootPath);
|
||||
|
||||
// 配置 Serilog 日志
|
||||
Log.Logger = new LoggerConfiguration()
|
||||
// 从配置读取日志设置
|
||||
.ReadFrom.Configuration(configuration)
|
||||
// 从日志上下文丰富日志信息
|
||||
.Enrich.FromLogContext()
|
||||
// 输出到控制台
|
||||
.WriteTo.Console()
|
||||
// 输出到文件(错误级别,按天滚动)
|
||||
.WriteTo.File("Log\\log..txt", Serilog.Events.LogEventLevel.Error, shared: true, rollingInterval: RollingInterval.Day)
|
||||
.CreateLogger();
|
||||
|
||||
// 创建日志工厂并添加 Serilog
|
||||
var loggerFactory = new LoggerFactory().AddSerilog(Log.Logger);
|
||||
|
||||
// 设置 Quartz 日志提供者
|
||||
Quartz.Logging.LogProvider.SetCurrentLogProvider(new ConsoleLogProvider());
|
||||
// 设置 Modbus.Net 日志提供者
|
||||
Modbus.Net.LogProvider.SetLogProvider(loggerFactory);
|
||||
}
|
||||
)
|
||||
})
|
||||
// 配置服务
|
||||
.ConfigureServices(services =>
|
||||
{
|
||||
// 添加后台服务 Worker
|
||||
services.AddHostedService<Worker>();
|
||||
|
||||
// 添加日志服务
|
||||
services.AddLogging(loggingBuilder => loggingBuilder.AddSerilog(Log.Logger, true));
|
||||
})
|
||||
.Build();
|
||||
|
||||
// 运行主机
|
||||
await host.RunAsync();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user