Sum*_*nto 3 .net c# console serilog
使用(.Net 6.0)我试图输出一些额外的默认信息与所有日志当我输出到控制台时我看不到属性,但是如果我启用 Json 并输出到文件它一切正常,想知道你是否有任何线索?
public class Program
{
public static int Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
Log.Logger = new LoggerConfiguration()
//.WriteTo.File(new Serilog.Formatting.Json.JsonFormatter(), "Logs/log-.txt", fileSizeLimitBytes: 5242880, rollOnFileSizeLimit: true, rollingInterval: RollingInterval.Day, shared: true)
.Enrich.FromLogContext()
.Enrich.WithProcessId()
.Enrich.WithProcessName()
.Enrich.WithProperty("Prop1", "ABC123")
.Enrich.WithProperty("Prop2", "1.00")
.Enrich.WithProperty("PID", Process.GetCurrentProcess().Id)
.WriteTo.Console()
.CreateLogger();
builder.Host.UseSerilog();
// Add services to the container.
var app = builder.Build();
// Configure the HTTP request pipeline.
app.MapGet("/weatherforecast", () =>
{
Log.Information("Hello....");
return forecast;
});
try
{
app.Run();
}
catch (Exception ex)
{
ex.ToString();
}
finally
{
Log.CloseAndFlush();
}
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
您必须将这些属性包含到Console接收器的模板中。
占位符按名称匹配;对于给出的示例,使用{Prop1}, {Prop2} and {PID}
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.Enrich.WithProcessId()
.Enrich.WithProcessName()
.Enrich.WithProperty("Prop1", "ABC123")
.Enrich.WithProperty("Prop2", "1.00")
.Enrich.WithProperty("PID", Process.GetCurrentProcess().Id) // 9840
.WriteTo.Console(
outputTemplate: "{Timestamp:HH:mm:ss} {Level:u3} {Message} {Prop1} {Prop2} {PID}{NewLine}{Exception}"
)
.CreateLogger();
Run Code Online (Sandbox Code Playgroud)
输出:
23:10:40 INF Hello.... ABC123 1.00 9840
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1944 次 |
| 最近记录: |