如何从Log类中获取完整的文件名?
日志记录器创建的文件格式为C:\MyPath\log-20160631.txt
我无法访问用于初始化记录器的源文件名。
编辑: 以下是记录器的初始化:
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.LiterateConsole()
.WriteTo.RollingFile(@"C:\MyPath\log.txt")
.CreateLogger();
在代码的任何位置,我都可以使用Log.Information()
,但是如何获取Sink信息呢?我想要获取传递给滚动文件Sink的文件名。
我的当前解决方法是手动生成真实文件(非常丑陋的代码):
public string LogFilename
{
get
{
string path = Path.GetDirectoryName(LogFilenameTemplate);
string filenameWithoutExtension = Path.GetFileNameWithoutExtension(LogFilenameTemplate);
string extension = Path.GetExtension(LogFilenameTemplate);
string date = DateTime.Now.ToString("yyyyMMdd");
string fullFilename = Path.Combine(path, filenameWithoutExtension + "-" + date + extension);
return fullFilename;
}
}
我从GitHub代码库获得的格式。