views:

266

answers:

2

I have a project consisting of a windows client (approx. 150 users), a webservice and some windows services. All together working in an intranet and build using C# .NET 3.5. Now I want to log exceptions in a central database and manage them (watch top 10, ticket system, etc.) via a web application.

I thought about using and expanding ELMAH, because it already has an web application for management. Maybe create a webservice for the clients to log their exceptions.

Is that a good idea, because ELMAH is obviously intended for asp.net web sites only.

I am aware of the Exception Management Application Block, but as far as I know it has no management application like ELMAH, plus my last visit at the Enterprise Library was no fun.

What is your opinions, are there other ideas?

A: 

I don't think that your idea to expand ELMAH is a bad one at all. Having done many similar projects I've always had to roll my own management apps and it is always a pain. Not sure how much you will be able to use from ELMAH but it sounds like it might be a great starting place.

sbeskur
+1  A: 

Enterprise Library is cumbersome and overkill. Look at open source logging components: NLog link text or Log4Net link text. They both have the capability to log to various "sinks" including a flat file, UDP, database, etc.

I would set something up where your logging component writes to the event log on the server. Then use something like Microsoft Operations Manager (MOM) or another systems management software that can scan the event log and raise alerts via paging, command-center console, etc. At the same time, you could also log to a database for querying, etc.

If you are looking for management of exceptions, reporting, alerting, etc... There are tons of solutions like MS MOM, Tivoli, CA Unicenter, HP OpenView, and even NagIOS that you could use for this.

The client-side is a bit more tricky. Since it is intranet, you could use UDP and run a service on the server that will listen for those UDP packets and store them in the event log and/or a database. Or you could add some methods to your web service to capture logging events.

Doanair
Actually, the logging part or bringing the exceptions from client to server is not my problem. I'm already using log4net and could set up an own Appender. My concerns are, if there are already solutions that are stable and usable and bring a handy managment app.
Hinek
As stated in the edit above, there are a TON of already hardened solutions for application manageability: handling the reporting, alerting, etc of your app. All of these solutions can work in tandem with your logging component to provide a very rich infrastructure for real-time management of issues.I would even hook-into bug tracking software by logging critical exceptions there also.
Doanair
Of course, modifying ELMAH may be a good choice if cost is a factor, although NAGIOS doesn't cost anything.
Doanair