是否可以将下面的ILog与Azure Function日志记录或Serilog等一起使用?
我找不到有关如何使用它的代码示例。
Rebus.Logging.ILog
.Options(o =>
{
o.Decorate<IErrorHandler>(c =>
new ErrorMessageHandler(c.Get<IErrorHandler>(), c.Get<ILog>()));
答案 0 :(得分:0)
这肯定是可能的,但是由于Rebus的记录器是用一种类型创建的(该类型用作各种上下文-我认为Serilog称其为“源上下文”),因此您无需注入记录器,而是注入了记录器工厂:
ErrorMessageHandler
,然后在public class ErrorMessageHandler : IErrorHandler
{
readonly IErrorHandler errorHandler;
readonly ILog log;
public ErrorMessageHandler(IErrorHandler errorHandler, IRebusLoggerFactory loggerFactory)
{
this.errorHandler = errorHandler;
log = loggerFactory.GetLogger<ErrorMessageHandler>();
}
public async Task HandlePoisonMessage(TransportMessage transportMessage, ITransactionContext transactionContext, Exception exception)
{
// do stuff in here
}
}
的构造函数中,您可以获取记录器:
reinterpret_cast<std::vector<double>>(std::string("Hello"));