Serilog:打开日志文件

本文关键字:日志 文件 Serilog | 更新日期: 2023-09-27 18:12:36

是否有办法从日志类获得完整的文件名?日志记录器创建一个格式为C:'MyPath'log-20160631.txt

的文件。

我无法访问我用于记录器初始化的源文件名。

编辑:以下是记录器的初始化:

Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Debug()
            .WriteTo.LiterateConsole()
            .WriteTo.RollingFile(@"C:'MyPath'log.txt")
            .CreateLogger();

在代码中的每个位置,我可以使用例如Log.Information(),但我如何获得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 Repo获取

Serilog:打开日志文件

不,没有办法从Serilog中检索文件名。您最好的可用选项是使用System.IO类列出目录中的文件,然后打开具有最近修改日期的文件。