It really depends on what kind of logging you will have. I personnally don't like the multiple logs approach because they can be separated depending on your appender and logging usage, but that is a personnal preference. Without a unifying token (thread id or whatever) it can be difficult to follow what is related in the logs.
As for the timing, @stuartd is right; the difference would be negligible; don't bother with it now, and time your code if you encounter problems later on; i'm pretty sure more interesting areas than the logging will pop up.
One point though: don't format your string directly as an argument to the logging call. log4net has some *Format methods (DebugFormat
, ErrorFormat
, etc...) that will execute the formatting only if the message should be logged, so it is arguably more efficient.
Some wrapper around log4net even add deferred evaluation of the logging string in order to avoid wasteful evaluation of the parameters in the case they won't be useful, but that's not vanilla log4net.