89 lines
4.5 KiB
C#
89 lines
4.5 KiB
C#
using Serilog;
|
|
using Serilog.Events;
|
|
using System.Text;
|
|
|
|
IHost host = Host.CreateDefaultBuilder(args)
|
|
.UseWindowsService()
|
|
.Inject()
|
|
//日志注入,将serilog设置为日志记录提供程序
|
|
.UseSerilog((context, config) =>
|
|
{
|
|
var env = context.HostingEnvironment;
|
|
var configuration = context.Configuration;
|
|
var filepath = configuration["logfile"];
|
|
string date = DateTime.Now.ToString("yyyy-MM-dd");//按时间创建文件夹
|
|
string outputTemplate = "{NewLine}【{Level:u3}】{Timestamp:yyyy-MM-dd HH:mm:ss.fff}" +
|
|
"{NewLine}#Msg#{Message:lj}" +
|
|
"{NewLine}#Pro #{Properties:j}" +
|
|
"{NewLine}#Exc#{Exception}" +
|
|
new string('-', 50);//输出模板
|
|
if (env.IsDevelopment())
|
|
{
|
|
//2.1仅输出 LogEventLevel.Debug 类型
|
|
config.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Debug)//筛选过滤
|
|
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Debug}.log",
|
|
outputTemplate: outputTemplate,
|
|
rollingInterval: RollingInterval.Day,//日志按日保存,这样会在文件名称后自动加上日期后缀
|
|
encoding: Encoding.UTF8 // 文件字符编码
|
|
)
|
|
)
|
|
|
|
//2.2仅输出 LogEventLevel.Error 类型
|
|
.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Error)//筛选过滤
|
|
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Error}.log",
|
|
outputTemplate: outputTemplate,
|
|
rollingInterval: RollingInterval.Day,//日志按日保存,这样会在文件名称后自动加上日期后缀
|
|
encoding: Encoding.UTF8 // 文件字符编码
|
|
)
|
|
)
|
|
.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Information)//筛选过滤
|
|
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Information}.log",
|
|
outputTemplate: outputTemplate,
|
|
rollingInterval: RollingInterval.Day,//日志按日保存,这样会在文件名称后自动加上日期后缀
|
|
encoding: Encoding.UTF8 // 文件字符编码
|
|
)
|
|
)
|
|
.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Fatal)//筛选过滤
|
|
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Fatal}.log",
|
|
outputTemplate: outputTemplate,
|
|
rollingInterval: RollingInterval.Day,//日志按日保存,这样会在文件名称后自动加上日期后缀
|
|
encoding: Encoding.UTF8 // 文件字符编码
|
|
)
|
|
)
|
|
.WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(evt => evt.Level == LogEventLevel.Warning)//筛选过滤
|
|
.WriteTo.File($"{filepath}/{date}/{LogEventLevel.Warning}.log",
|
|
outputTemplate: outputTemplate,
|
|
rollingInterval: RollingInterval.Day,//日志按日保存,这样会在文件名称后自动加上日期后缀
|
|
encoding: Encoding.UTF8 // 文件字符编码
|
|
));
|
|
}
|
|
else
|
|
{
|
|
config.WriteTo.Seq("http://localhost:5341/");
|
|
}
|
|
})
|
|
.ConfigureServices((hostContext, services) =>
|
|
{
|
|
var configuration = hostContext.Configuration;
|
|
//添加CAP支持
|
|
services.AddCap(x =>
|
|
{
|
|
x.DefaultGroupName = "cap.queue.ybdevice.napi";
|
|
//配置rabbitmq支持
|
|
string port = configuration["RabbitmqSetting:Port"];
|
|
int p = Convert.ToInt32(port);
|
|
x.UseRabbitMQ(opt =>
|
|
{
|
|
opt.HostName = configuration["RabbitmqSetting:HostName"]; //配置ip地址
|
|
opt.Port = p;//配置端口
|
|
opt.UserName = configuration["RabbitmqSetting:UserName"];//配置用户名
|
|
opt.Password = configuration["RabbitmqSetting:Password"];//配置Miami
|
|
});
|
|
//配置sqlserver支持
|
|
x.UseSqlServer(configuration["RabbitmqSetting:DBConnection"]);
|
|
});
|
|
})
|
|
.Build();
|
|
|
|
await host.RunAsync();
|