【发布时间】:2021-04-28 16:07:11
【问题描述】:
我有这个代码
[HttpGet("average/{videoGuid}")]
public async Task<IActionResult> AverageRatingOfVideo([FromRoute] string videoGuid)
{
_logger.LogInformation($"Finding average rating of video : {videoGuid}");
var avg = await _ratingService.GetVideoRatingAverageAsync(videoGuid);
return Ok(avg);
}
我在这里收到警告$"Finding average rating of video : {videoGuid}"
消息模板应该是编译时常量
我正在使用 Rider,没有建议修复此警告。
我不明白为什么这会给我一个警告,我该如何解决这个问题?
【问题讨论】:
-
不,我不这么认为,我的问题与
c#有关 -
尝试将这个 $"Finding average rating of video : {videoGuid}" 提取到某个变量,例如 var msg = $"Finding average rating of video : {videoGuid}";并将此消息用作 LogInformation 参数
-
@godot 试过了,但警告仍然存在
-
它是 Serilog 的一个特性,见讨论here。
-
试试
_logger.LogInformation("Finding average rating of video : {videoGuid}", videoGuid)或_logger.LogInformation("Finding average rating of video : " + videoGuid)。我会说它的原因是结构化日志记录,它使用相同的大括号进行模板和分析器缺少插值字符串部分。