Både log4net og Logging Application Block er gyldige valg. Jeg tror, at ELMAH mest er fokuseret på fejl logning, så det er nok ikke (det eneste), du ønsker.
På arbejdet bruger jeg log4net på et par projekter. Den er stabil, ydeevne og kan udvides, og vi har aldrig haft problemer med den.
Jeg ville sandsynligvis også logge med log4net og logge undtagelser med ELMAH. Den kan logge ubehandlede undtagelser manuelt, og enhver undtagelse, du fanger og håndterer i din applikation, kan logges med et enkelt opkald til ELMAH. Dette kan virke som dobbeltlogning (og det er det :-)). Men det er meget værdifuldt at have ELMAH-loggen, når noget uventet er fejlet i din ansøgning.
Jeg har hørt gode ting om NLog-projektet , men har ikke selv brugt det. Det ser ud til at være lidt mere komplekst end log4net, men det har den ekstra fordel, at det er i stand til automatisk at tilføje kontekstuel information til logbeskeder (lidt ligesom ELMAH).