为了
Serilog公司
,它可以返回json数据类型,但不能更改的内置返回值
Executing ObjectResult
. 这是由
ObjectResultExecuting
public static void ObjectResultExecuting(this ILogger logger, object value)
{
if (logger.IsEnabled(LogLevel.Information))
{
var type = value == null ? "null" : value.GetType().FullName;
_objectResultExecuting(logger, type, null);
}
}
ObjectResultExecuting
记录类型而不是值。我想这是为了更好的表现。您可以假设,如果将响应序列化为string,将浪费大量性能,这是没有必要的。
[Produces("application/json")]
[Route("api/[controller]")]
public class SerilogController : Controller
{
private readonly ILogger<SerilogController> _log;
public SerilogController(ILogger<SerilogController> log)
{
_log = log;
}
[HttpGet]
public IEnumerable<string> Get(string password)
{
_log.LogInformation(JsonConvert.SerializeObject(new string[] { "value1", "value2" }));
return new string[] { "value1", "value2" };
}
}