我正在使用ASP.NET Core 1.1.13应用程序,并且为了进行日志记录,我正在使用Serilog。 我想在日志文件中记录一些特定的日志。
即->所有异常,如果某些日志信息包含某些特定的单词,例如请求Request finished in 5506.8283ms 204
响应码,除了200。
下面是我的配置。
{
"Serilog": {
"SeqServerUrl": null,
"LogstashUrl": null,
"FilePath": "Logs/log.txt",
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
}
},
"AllowedHosts": "*"
}
在此,我尝试为每个级别创建不同的日志文件。
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory
loggerFactory, IApplicationLifetime lifetime, IServiceProvider serviceProvider)
{
var filePath = Configuration["Serilog:FilePath"];
var serilogger = new LoggerConfiguration()
.MinimumLevel.Information()
.Enrich.FromLogContext()
.WriteTo.Console()
.WriteTo.Map(e=>e.Level,(level,wt)=> wt.RollingFile("Logs\\{Date}-" +
level+".log",outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}
{Exception}", fileSizeLimitBytes: 10485760, retainedFileCountLimit: null))
.CreateLogger();
loggerFactory.AddSerilog(serilogger);
您能指导我如何仅添加自定义日志吗?
下面是我当前的日志示例。
[13:11:04 INF] Executing ObjectResult, writing value Microsoft.AspNetCore.Mvc.ControllerContext.
[13:11:04 INF] Executed action APIName in 124.31070000000001ms
[13:11:04 INF] Request finished in 128.8629ms 200 application/json; charset=utf-8
[13:11:04 INF] MyRatesService.GetOutletRates => Gets 35 outlet rates of OutletId=6
[13:11:04 INF] Executing ObjectResult, writing value Microsoft.AspNetCore.Mvc.ControllerContext.
[13:11:04 INF] Executed action APIName in 486.30010000000004ms
[13:11:04 INF] Request finished in 490.9998ms 200 application/json; charset=utf-8
[13:11:04 INF] Request starting HTTP/1.1 POST http://localhost:5002/api/v1/Notification/NotifySyncAllNotificationsRequest/ application/json; charset=utf-8 15
[13:11:04 INF] Executing action method APIName with arguments - ModelState is "Valid"
[13:11:04 INF] Executing ObjectResult, writing value Microsoft.AspNetCore.Mvc.ControllerContext.
[13:11:04 INF] Executed action APIName in 16.166900000000002ms
[13:11:04 INF] Request finished in 22.8557ms 200 application/json; charset=utf-8
[13:12:15 INF] Request starting HTTP/1.1 POST http://localhost:5002/api/v1/Identity/SessionValidate/ application/json; charset=utf-8 25
[13:12:15 INF] Executing action method APIName with arguments - ModelState is "Valid"
[13:12:15 INF] Executing ObjectResult, writing value Microsoft.AspNetCore.Mvc.ControllerContext.
[13:12:15 INF] Executed action APIName in 4.2384ms
[13:12:15 INF] Request finished in 5.9403ms 200 application/json; charset=utf-8
[13:12:19 INF] Request starting HTTP/1.1 GET http://localhost:5002/api/v1/xxx/xxx/6/0/ghgf
[13:12:19 INF] Executing action method APIName with arguments (["6","0","ghgf"]) - ModelState is "Valid"
[13:12:25 INF] Executing ObjectResult, writing value Microsoft.AspNetCore.Mvc.ControllerContext.
[13:12:25 INF] Executed action APIName in 5495.6462ms
[13:12:25 INF] Request finished in 5506.8283ms 204
所以,我只想添加
Request starting HTTP/1.1 GET http://localhost:5002/api/v1/xxx/xxx/6/0/ghgf
[13:12:25 INF] Request finished in 5506.8283ms 204 *
(原因-它返回204状态代码。是否可以在其中包括它的请求启动以及知道它从哪个请求返回204)
所以,这只是我描述的一个例子。