.NET中如何避免日志写入相对路径

问题描述 投票:0回答:1

我正在使用 Serilog 来写入日志,这就是我的配置:

Log.Logger = new LoggerConfiguration()
        .MinimumLevel.Verbose()
        .Enrich.FromLogContext()
        .WriteTo.Async(c => c.File($"Logs/log-.txt", rollingInterval: RollingInterval.Day))
        .WriteTo.Async(c => c.Console())
        .CreateLogger();

问题在于这是在 bin/debug/.net7/logs 中写入日志

但我希望它在项目中名为 Logs 的文件夹中写入日志。

这种方法在 API 项目中工作得很好,但是当我尝试在单元测试项目中使用它时,它会将其记录在 bin/debug/.net7/logs 中

我如何更改它,以便它应该将日志写入我在单元测试项目的根目录中创建的文件夹中?

c# .net logging path serilog
1个回答
0
投票

您可以检查是否附加了调试器(使用

System.Diagnostics
命名空间):

string logPath = Debugger.IsAttached
    ? @"..\..\..\Logs\log-.txt"
    : @"Logs\log-.txt";
Log.Logger = new LoggerConfiguration()
        .MinimumLevel.Verbose()
        .Enrich.FromLogContext()
        .WriteTo.Async(c => c.File(logPath, rollingInterval: RollingInterval.Day))
        .WriteTo.Async(c => c.Console())
        .CreateLogger();
© www.soinside.com 2019 - 2024. All rights reserved.