You should definitely try Gibraltar . You can combine it with PostSharp , and your monitoring of progress will be part of the cake. Just check out the following code example:
[GTrace]
public Connection ConnectToServer(Server server)
{
ConnectionStatus connectionStatus = server.TryConnect();
return connectionStatus;
}
And the result in the log will look like this:
Starting a method call (you can see the arguments passed)

Call completion method

There is no crap in the code, the only thing you need is a single attribute. Attrubutes can be used for the entire project, excluding unnecessary methods, on namespaces, classes, or just on any methods that you need. Enjoy it!
Edit I
forgot to mention that Gibraltar has a very rich client and supports any indicators you ever need, it is too powerful:

source
share