title: Pattern for Application-Wide Logging with IP Address
body: <p>I'm writing an ASP.NET MVC 3 application with lots of classes which are not web-specific. Because of strict requirement for audit trail, all suspicious activity should be logged with user ID and IP address.</p>
  
  <p>How is this kind of logging usually done? Is the IP address only logged at the login controller? If so, how is the user ID passed to all the places where logging is necessary? Adding it as a parameter to each method doesn't sound like a good idea.</p>