I have a requirement to log each method call in a WCF service, and any exceptions thrown. This has led to a lot of redundant code, because each method needs to include boil
You can try Audit.NET library with its Audit.WCF extension. It can log the WCF service interaction and is compatible with async calls.
All you need to do is decorate your WCF service class or methods with the AuditBehavior attribute:
[AuditBehavior()]
public class OrderService : IOrderService
{ ... }
The WCF extension uses an IOperationInvoker implementing Invoke and InvokeBegin/InvokeEnd. You can check the code here.