我正在使用Microsoft.Extensions.Logging.ILogger
. 我只想在 LogLevel 设置为时记录请求对象Information
我知道我可以将请求对象记录为
_logger.LogInformation("{request}", request);
我Serilog
用作记录器。这会按预期将对象和日志请求序列化为 json 字符串。但是我不知道 Logging 框架是先检查日志级别然后序列化还是总是先序列化然后检查日志级别。因为如果 LogLevel 设置为高于 Information,我不想在每次调用时序列化对象。
无论如何检查 LogLevel 使用Microsoft.Extensions.Logging.ILogger
private Microsoft.Extensions.Logging.ILogger<RoutesController> _logger = null;
public RoutesController(Microsoft.Extensions.Logging.ILogger<RoutesController> logger)
{
_logger = logger;
}
public void Route([FromBody]JObject request)
{
//how to check current LogLevel here?
if(_logger.LogLevel == "Information")
{
_logger.LogInformation(JsonConvert.Serialize(request));
}
}