Serilog 日志使用 .net core .net5.0

Serilog可以很好的对.net core 进行内置日志集成处理

其基本配置可以通过外部读取,也可以内部通过代码判断
可以使用:

  Serilog.Settings.AppSettings

  Serilog.Settings.Configuration

Serilog.Sinks.Console 将日志读取到控制台
Serilog.Sinks.File 将日志读取到文件

Serilog.Sinks.MariaDB 将日志写入数据库需要用到(支持sqlserver ,Mysql) 其它数据库需要安装相应的nuget包,具体可以查阅官方文档

当然还有许多好用的Nuget包

同时支持多种关系型数据库和非关系型数据库

Serilog 日志使用  .net core  .net5.0

 

 

 

基本配置
WriteTo 用于设置日志接受器,可以单个也可以多个
Log.Logger = new LoggerConfiguration()
.WriteTo.Console()
.WriteTo.File("log-.txt", rollingInterval: RollingInterval.Day)
.CreateLogger();

outputTemplate 输出日志模板设置

.WriteTo.File("log.txt",
outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}")


设置日志输出的最小粒度等级
.MinimumLevel.Debug()
输出的日志等级可以设置全局,也可以单独设置
如下为单独控制面板的日志等级
.WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Information)


对内置日志输出粒度的重写
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)

 


json文件内容示例
"Serilog": {
"Using": [
"Serilog.Sinks.MariaDB"
],
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "MariaDB",
"Args": {
"connectionString": "server=localhost;Database=data;Uid=root;Pwd=123456;Port=3306;Allow User Variables=True;",
"autoCreateTable": true,
"tableName": "Logs",
"restrictedToMinimumLevel": "Information",
"batchPostingLimit": 1000, //批量写入限制
"period": "0.00:00:30",
"options": {
"PropertiesToColumnsMapping": {
"Exception": "Exception",
"Timestamp": "Timestamp",
"Level": "Level",
"Message": "Message",
"MessageTemplate": "MessageTemplate",
"Properties": "Properties"
},
//"HashMessageTemplate": true, //是true(默认是false)时,使用 SHA256 算法对消息模板进行哈希处理。当您想通过消息模板搜索日志时,这可能会更方便。
"TimestampInUtc": false, //时间戳转化
"ExcludePropertiesWithDedicatedColumn": true, //是true(默认为false)时,具有专用列的自定义属性不包含在Properties列中。
"EnumsAsInts": false, //是true(默认为false)时,枚举在保存之前被转换为其对应的整数值,否则枚举被存储为字符串。
"LogRecordsCleanupFrequency": "0.02:00:00", //日志清理频率
"LogRecordsExpiration": "31.00:00:00" //日志记录过期设置 ,定期删除处理
}
}
},
{
"Name": "Console"
}
]
}

 多看看官方文档

 

感觉特别好的参考资料:
https://github.com/serilog/serilog-aspnetcore
https://serilog.net/
https://nblumhardt.com/
https://github.com/TeleSoftas/serilog-sinks-mariadb

 

Serilog 日志使用 .net core .net5.0

上一篇:XSS--设置httponly后的利用方式


下一篇:archaius netflix 的配置管理工具框架