让我举一个例子,使用,Serilog 和Microsoft.Extenions.logging <。 申请使用Serilog作为其伐木组成部分,日志可用作<代码>。 I Carloger<T> by Depend injection. 真正的陈词有一个称为信息模板的陈词特征,可提供诸如:
//_logger is an instance of ILogger<SomeClass> injected in the constructor
var position = new { Latitude = 25, Longitude = 134 };
var elapsedMs = 34;
_logger.LogInformation("Processed {@Position} in {Elapsed} ms", position, elapsedMs);
罚款。 我的问题是:使用<代码>Ilogger<T>的目的是把我的代码从Serilog中分离出来,以便我能够轻易地转用其他伐木成分(尽管没有人会这样做,因为Serilog岩石!),使用Serilog独特的特征“message model”与原始意图相矛盾。 因此,这里的最佳做法是什么? 这不仅是一个伐木问题,而且也涉及其他部分。