In general good one is Log4net.
PROS: Log4Net supports many output sources.
CONS: Sometimes can slow your application.
For ASP.NET application is of the best ELMAH.
PROS: You do not have to change an application code a bit to use Elmah. You have to just include in you application.
CONS: Not that I know.