我已经将 Log4Net 与 BizTalk 一起使用,但我会说我遇到了开箱即用的问题。 BizTalk 的每次调用都会导致当前编排变得脱水(序列化),因此您在 BizTalk 中使用的任何类型都必须是可序列化的,而 log4net 记录器则不是。
如果您绝对必须使用 log4net,那么 Scott Colestock 编写了一个包装器here http://www.traceofthought.net/PermaLink,guid,62b858b4-d8ba-4fc4-92aa-35a4ff1ba00a.aspx.
假设您没有被锁定,我只会使用 Enterprise Logging,它提供与 log4net 几乎相同的功能,并且可以与 BizTalk 一起使用。你可以找到它here http://msdn.microsoft.com/en-us/library/dd139916(v=MSDN.10).aspx.
对于优点和缺点,我会说提供几乎完全相同的功能,实际上我最终创建了一个包装实用程序,使企业库日志记录块看起来更像 log4net。
public static class Logging
{
public static void LogMessage(TraceEventType eventType, string category, string message)
{
LogEntry logEntry = new LogEntry();
logEntry.Severity = eventType;
logEntry.Priority = 1;
logEntry.Categories.Add(category);
logEntry.Message = message;
Logger.Write(logEntry);
}
public static void LogError(string category, string message)
{
LogMessage(TraceEventType.Error, category,message);
}
public static void LogInfo(string category, string message)
{
LogMessage(TraceEventType.Information, category, message);
}
public static void LogVerbose(string category, string message)
{
LogMessage(TraceEventType.Verbose, category, message);
}
}
如果你需要更多看看here http://james.newtonking.com/archive/2007/06/05/enterprise-library-logging-vs-log4net.aspx .