> I am logging to JMS and NDC does not appear to be a serializable
> portion of the logging event.

I don't have any insight into the JMS issue, but I will wager
it is solvable.

> I need to be able to override the log level/threshold on a by-user
> basis and, in log4j, that seems to require a seperate Logger
> instance.

I can think of a couple options:

What about using a Filter?  (The class lives in org.apache.log4j.spi.)
By implementing a custom filter, you can examine the NDC and other
info to decide whether or not to log.

If you can afford to process the logs after the fact, then you could
achieve the same ends by logging everything and then filtering for the
information you want after the fact.  That is, write a little tool to
read the log files and grab out the particular parts you are
interested in.

Depending on your particular needs, the log-reader approach may have
support advantages.  If you are logging everything, then when user
Fred has a problem, you can look in the log and see a lot of detail
regarding Fred's actions.  If you are filtering per-user before
writing anything, then you would have to crank the logging level up
for Fred and wait for the problem to happen again.

Hmm...  now that I think about it, there is a third option as well.
Throw RAM at the problem.  In some cases, it may be cheaper to put a
lot of memory into your servers than to tie up a lot of developer
resources on the problem.  That's not exactly elegant, but I thought
I'd throw it out there anyway.

If it were me (and it is on my own app), I would go with a log reader.
Disk is cheap.  With per-user priorities in place at runtime, you
still have the problem of searching out the info for a particular user
when you read the logs.  If you have a lot of users, then there will
be a lot of irrelevant information to search through.

But again, I don't know your support requirements, so the
post-processing approach may not work for you.

Good luck,

--mkb



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to