title: Best logging approach for composite app?
body: <p>I am creating a Composite WPF (Prism) app with several different projects (Shell, modules, and so on). I am getting ready to implement logging, using Log4Net. It seems there are two ways to set up the logging:</p>
  
  <ul>
  <li><p>Let the Shell project do all of the actual logging. It gets the reference to Log4Net, and other projects fire composite events to let the Shell know that it needs to log something. Those projects fire the events only for levels where logging is turned on in the Shell's app.config file (DEBUG, ERROR, etc), so as not to degrade performance.</p></li>
  <li><p>Give each project, including modules, a Log4Net reference, and let the project do its own logging to a common log file, instead of sending messages to the Shell for logging.</p></li>
  </ul>
  
  <p>Which is the better approach? Or, is there another approach that I should consider? Thanks for your help.</p>