排除TransactionScope的日志我有一些像这样的代码:如何正确地在.net
using (var scope = GetTransactionScope())
{
... do stuff
InfoLogger.LogInformation("blah blah", "Blah blah", someEventId);
}
(注:GetTransactionScope()获取我的交易)。
但我不想在事务中涉及日志记录调用;呼叫LogInformation()
将呼叫包装到企业库中。
根据我的理解,我需要使用Suppress
TransactionScopeOption从交易中排除日志记录调用(是唯一的/最好的方式)?
假设是这种情况,我宁愿在我的帮手里面做 - 否则我会在整个地方有一个大型的SUV值得额外的TransactionScope代码......所以,这是最好的方式/可以接受的:
public static void LogInformation(string title, string message, int eventId)
{
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Suppress))
{
... do the real logging.
}
}