Is there anyway to set a context for log4r?
log4j has somethign like NDC
Basically, in a web app, I'd like to correlate messages for the same
client. I'd like to do something like
context = "#{user.ip} #{user.name}"
and have it automatically appended to each logging message, or, even
better, appended whenever the context changes (that is, if there are 5
messages in a row from the same user, no need to keep repeating the
context)
is this available?
List Recv wrote:
Is there anyway to set a context for log4r?
log4j has somethign like NDC
Basically, in a web app, I'd like to correlate messages for the same
client. I'd like to do something like
context = "#{user.ip} #{user.name}"
and have it automatically appended to each logging message, or, even
better, appended whenever the context changes (that is, if there are 5
messages in a row from the same user, no need to keep repeating the
context)
is this available?
I had a similar issue with Log4r, and no there isn't currently a way to
automatically log the context (i.e. the logged in user etc) However, I
enhanced our copy of Log4r to take an extra optional parameter on all
log calls (.debug, .warn etc) that appears in all log messages, and I
plan to have the logged on user appear in there. That's probably as
good as it'd going to get; the logger object is a singleton, so you
couldn't just set a context into the object and have it available to the
user's session and automatically append the context to every log
message. That might be a useful enhancement though.
···
--
Posted via http://www.ruby-forum.com/\.
You need to use Thread local variables for this sort of behaviour.
Ruby threads support this so its a matter of tweaking log4r
Thread.current["name"] = "username"
···
On 4/25/06, Ed Syrett <edward.syrett@kuehne-nagel.com> wrote:
List Recv wrote:
> Is there anyway to set a context for log4r?
>
> log4j has somethign like NDC
>
> Basically, in a web app, I'd like to correlate messages for the same
> client. I'd like to do something like
>
> context = "#{user.ip} #{user.name}"
>
> and have it automatically appended to each logging message, or, even
> better, appended whenever the context changes (that is, if there are 5
> messages in a row from the same user, no need to keep repeating the
> context)
>
> is this available?
I had a similar issue with Log4r, and no there isn't currently a way to
automatically log the context (i.e. the logged in user etc) However, I
enhanced our copy of Log4r to take an extra optional parameter on all
log calls (.debug, .warn etc) that appears in all log messages, and I
plan to have the logged on user appear in there. That's probably as
good as it'd going to get; the logger object is a singleton, so you
couldn't just set a context into the object and have it available to the
user's session and automatically append the context to every log
message. That might be a useful enhancement though.
--
Posted via http://www.ruby-forum.com/\.
--
Into RFID? www.rfidnewsupdate.com Simple, fast, news.