Something here doesn’t feel right to me here, and so I would like the community’s input – perhaps I am approaching this in the wrong way….
Q: Is is appropriate to use traditional infrastructure logging frameworks (like log4net) to log business events?
When I say business events, I mean I want a global log like this:
xx:xx Customer A purchased widget B.
xx:xx Widget B was dispatched from warehouse.
xx:xx Customer B payment declined.
Most traditional infrastructure logging frameworks have event levels something like this:
FATAL
ERROR
WARN
INFO
DEBUG
An of course these messages don’t fit well into that. Best description would be INFO, but of course these are important events, and INFO is of very low importance.
I would still like this as a ‘log’ (e.g. I don’t want to have to extract this from my business objects each time I want to see it)
Seems to me I have two options:
1) Use a framework like log4net and just define a special logger for this (and live with the fact that it doesn’t feel right).
2) Provide a service for performing this that doesn’t rely on a traditional logging services.
I’m leaning towards 2. What has anyone else done in a similar situations?
Thanks!
What you’re wanting sounds like an auditing service, not a logging service. If I’m right, your goals are to keep track of these business events for historical and maybe even reporting purposes. You can use the details in the audit to, for lack of a better phrase, place blame for events that happen in the system.
I probably wouldn’t use a logging system, like log4j, for this purpose. In our system, auditing is a first class citizen as a full service.
—
HTH,
Dusty