小编Sup*_*nus的帖子

Serilog:打开日志文件

有没有办法从日志类中获取完整的文件名?记录器创建一个格式如下的文件C:\MyPath\log-20160631.txt

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

编辑:这是记录器的初始化:

Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Debug()
            .WriteTo.LiterateConsole()
            .WriteTo.RollingFile(@"C:\MyPath\log.txt")
            .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

在代码中的每个位置我都可以使用例如Log.Information(),但是我如何获取接收器信息?我想获取传递给滚动文件接收器的文件名。

我当前的解决方法是手动生成真实文件(疯狂丑陋的代码):

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;
   }
}
Run Code Online (Sandbox Code Playgroud)

我从GitHub Repo获得的格式。

c# serilog

7
推荐指数
1
解决办法
3758
查看次数

标签 统计

c# ×1

serilog ×1