相关疑难解决方法(0)

C#ASP.NET Core Serilog添加类名称和方法进行记录

我最近将日志记录添加到了ASP.Net Core项目中。当前,日志以以下格式写入.txt文件:

{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {消息} {NewLine} {Exception}

例如:

2017-11-30 13:58:22.229 +01:00 [信息]在数据库中创建的项目。

很好,但是我想输入要记录到该.txt文件的类的名称和方法。例如,当类A使用方法B向数据库中写入一些内容并将其记录下来时,我希望看到类似

ClassA.MethodB:在数据库中创建的项目

所有记录日志的类都将其Logger注入到其构造函数中,例如

public class ClassA
{
    private readonly ILogger _log;

    public ClassA(ILogger<ClassA> log){
        _log = log;
    }

    public void AddItemToDb(Item item){
        //Add item
        //On success: 
        _log.LogInfo("Added item to db.");
    }
}
Run Code Online (Sandbox Code Playgroud)

我当前正在使用Serilog并使用以下LoggerConfiguration:

var logger = new LoggerConfiguration()
    .MinimumLevel.Verbose()
    .MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
    .WriteTo.RollingFile(Configuration.GetValue<string>("LogFilePath") + "-{Date}.txt", LogEventLevel.Information)
    .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

如何将类和方法添加到日志中?

编辑

我向.WriteTo.Rollingfile()方法添加了一个自定义outputTemplate,如下所示:

"{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] ({SourceContext}) {Message}{NewLine}{Exception}")
Run Code Online (Sandbox Code Playgroud)

这导致将名称空间和类添加到日志中,现在仅缺少该方法

c# asp.net logging serilog asp.net-core

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

asp.net ×1

asp.net-core ×1

c# ×1

logging ×1

serilog ×1