我用的.net 6
1.nuget安装serilog
2.在appsettings.json中加入下面的内容
"Serilog": {
"MinimumLevel": {
"Default": "Debug", //最小日志记录级别
"Override": { //系统日志最小记录级别
"Default": "Warning",
"System": "Warning",
"Microsoft": "Warning"
}
},
"WriteTo": [
{ "Name": "Console" }, //输出到控制台
{
"Name": "Async", //异步写入日志
"Args": {
"configure": [
{
"Name": "File", //输出文件
"Args": {
"path": "log/log.txt",
"outputTemplate": "{NewLine}Date:{Timestamp:yyyy-MM-dd HH:mm:ss.fff}{NewLine}LogLevel:{Level}{NewLine}Class:{SourceContext}{NewLine}Message:{Message}{NewLine}{Exception}",
"rollingInterval": "3" //日志文件生成精度:1:年 2:月 3:日 4:小时
}
}
]
}
}
]
}
3.在program.cs 最上面加入下面的代码
string Dir1 = DateTime.Now.ToString("yyyy-MM-dd") ;
string Dir2 = DateTime.Now.ToString("yyyy-MM-dd HH");
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.ReadFrom.Configuration(new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build())
.Enrich.FromLogContext()
.WriteTo.Async(c => c.File(Path.Combine(AppDomain.CurrentDomain.BaseDirectory + $"/Slog/{Dir1}/{Dir2}/", $"log.txt"), rollingInterval: RollingInterval.Hour))
.WriteTo.Async(c => c.Console())
.CreateLogger();
4.程序中使用方法
Log.Logger.Information("GetComStatus");
4.下面是生成的日志
4