tags:

views:

3179

answers:

18

In java world you have log4j and a a pretty decent logging framework, is there anything like that for C#/.NET?

+19  A: 

log4net would be the obvious answer.

Ray
log4net will always have my <3
Jarrod Dixon
A: 

Yep. Log4Net.

I've been using it for a while, it has been a life saver!

Eric Tuttleman
+2  A: 

There's also nLog, which is rather similar, but a bit more lightweight with less configuration.

James Curran
A: 

NLog is a good option.

epotter
+6  A: 

http://www.nlog-project.org/ - NLog

It's a very flexible and configurable logging tool that's very light-weight. You can set it up to log to many different locations (Console, SQL, File... etc). Very easy to use.

It's even used by Rob Connery in his Storefront MVC project... http://blog.wekeroad.com/mvc-storefront/

Chad Moran
NLog is faster than log2net or "Microsoft Logging Block".
dario-g
+1  A: 

I'd still say Log4Net is a safer options. Many other open source projects also use it, if you ever include one that does, then you've just reduced a dependency.

Brendan Kowitz
A: 

Is there anything that the Windows Event Log + Log Parser can't do for you?

fatcat1111
+2  A: 

We've always used the MS P&P Enterprise Library Logging Application Block. It's not particulary cool or elegant, but it is pretty flexible and well designed. Main reason I think we use it is that we use a lot of the other components from the EL, and they of course all have dependencies on the logging module. More Info Here.

Kevin Dostalek
A: 

Look at TraceSources and TraceListeners. It is built into .NET and configured with the config file.

CSharpAtl
+4  A: 

Try the Enterprise Library Logging Application Block

Even though I have used a few others mentioned here too - it is worth looking into.

devmode
A: 

James Newton-King covered log4net vs. Enterprise Library Logging about a year ago, and I think it's still largely up to date. My experience has been with EL only, and it's had ups and downs. It's a lot of configuration in a multi-tier application if you don't take advantage of every bell and whistle, so I'll probably try log4net on my next project.

dnord
A: 

Actually, if you don't need sophisticated logging options straight out of the box, I would suggest writing a thin interface that defines your logging needs (such as log.debug(), log.error(), etc). This will give you flexibility if you need to change latter, or find problems with your current implementation.

While this doesn't seem like a big gain, it was a big win for us recently when we ported our framework to the Windows Compact Framework, and none of the logging options worked. We were able to slide in a null logger, which saved us on that platform. Of course, evaluate for your specific project and needs.

Travis
A: 

Already been asked here in a similar format

Chris S
+5  A: 

If you are looking for a simple non-bloat solution (the download is only about 100K and the actual dll about 40K), I've successfully used BitFactory on a number of projects.

It's small, configurable, reliable and free!

nzpcmad
The author of BitFactory is now asking for a small license fee in order to download the most current version of the library. However, the fee is really exceptionally small - $5 for a single developer, $29 for 10 devs, and $49 for a site license. Older versions also appear to be available for free download.
qstarin
+1  A: 

No doubt, try: this. Hands down, it is the best for most applications. It isn't bloatware.

+3  A: 

The comments here seem to agree with Developer Dude and nzpcmad, as do I. Use Bit Factory, also called The Object Guy's Logging Framework.

+2  A: 

As I've said in a few other places, I agree with others here about The Object Guy's Logging Framework. Like Developer Dude says, it isn't bloated -- like some other frameworks out there. It works in all our production applications--and has been doing so for several years now.

S. Mills