【发布时间】:2011-04-27 05:42:22
【问题描述】:
我有一些这样的代码:
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.
}
}
【问题讨论】:
标签: .net logging transactions transactionscope