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 er开发者_如何学Pythonror doesn't preclude network connectivity, of course).
Any ideas would be appreciated.
Thanks,
KentHave a look at Google Elmah. I've used it for several applications and have found it quite useful.
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.
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.
精彩评论