我最近在我的ASP中添加了日志(log)记录.Net核心项目.当前,日志(log)会写入一个.此格式的txt文件:
{Timestamp:yyyy-MM-dd HH:MM:ss.fff-zzz}[{Level}]{Message}{NewLine}{Exception}
例如:
2017-11-30 13:58:22.229+01:00[信息]项在数据库中创建.
这很好,但我想知道记录该.txt文件的类名和正在执行的方法.例如,当类A使用方法B向数据库写入内容并将其记入日志(log)时,我希望看到如下内容
ClassA.MethodB:在数据库中创建的项
所有记录日志(log)的类都将其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.");
}
}
我当前正在使用Serilog并使用以下LoggerConfiguration:
var logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
.WriteTo.RollingFile(Configuration.GetValue<string>("LogFilePath") + "-{Date}.txt", LogEventLevel.Information)
.CreateLogger();
如何将类和方法添加到日志(log)中?
Edit
我向.WriteTo.Rollingfile()方法添加了一个自定义outputTemplate,如下所示:
"{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] ({SourceContext}) {Message}{NewLine}{Exception}")
这会导致在日志(log)中添加命名空间和类,现在只缺少该方法