views:

37

answers:

3

I'm looking for a solution that gives me a central hub from which to view and manage errors that occur in my system, regardless of the tier in which they occur. I already have logging (log4net), perf counters, etc. But what I'm wondering is what tools I can use to collate this information into a central place. I am interested in both commercial and open source solutions.

Ideally, I want to walk into work in the morning and look at a report that tells me:

  • what errors have occurred
  • what environment the error occurred in
  • what tier of the environment the error occurred in (web, app server, client)
  • the details of the error (message, stack trace etc)

If it matters, I'm using .NET 3.5 on the server side, Flash/Flex client side. My intention is to expose a service that clients can invoke to log errors (assuming the error doesn't preclude network connectivity, of course).

Any ideas would be appreciated.

Thanks,
Kent

A: 

We're using a Log4Net appender to log (via UDP networking) to a central syslogd (windows port). That'd work for the .net side of things, but I don't know much about Flash/Flex, so I can't tell you anything about that.

andyp
A: 

You could build a web service interface for error collection that all environments and tiers could point to. Being a web service should allow you to gracefully interact with it from different technologies (i.e. your Flash/Flex applications). Being a web application containing web services, you could also provide other interfaces to it that aren't explicitly web service contracts, such as a RESTful interface which might simplify non-.NET technology implementation. Then you could build reports presented by the same web application for a simple and single collection and delivery/reporting system. Of course, this kind of centralized collection system would be subject to connectivity problems, but I feel that those kinds of issues are outside the scope of what such a system is trying to achieve. They are usual a sign of a much larger problem and issues that are raised quickly by people (e.g. when they can't update their facebook status because the intertubes are down. ;-)

I don't know what kind of systems like this are commercially available. I build such an implementation for a previous employer years ago and it was not terribly difficult or complex.

Peter
Yes, I know I could build it, but I'm trying to write less code, not more ;)
Kent Boogaart
+2  A: 

Have a look at Google Elmah. I've used it for several applications and have found it quite useful.

Michael M
Thanks, this looks like a good option. To be honest, I thought it was ASP.NET only, but it looks as though they've added a feature called error signaling that enables me to use it from non ASP.NET environments.
Kent Boogaart