I'm not a 100% for sure about how log4j gets the class info, but I believe
it retrieves the previous value from the stack.

So if your class/method that was performing logging was Foo/foo, normally
the stack would look something like:

Logger.log(xx)
Foo.foo(xx)
...

However with your intermediary class your stack looks like:

Logger.log(xx)
logging.log(xx)
Foo.foo(xx)
...

So when log4j tries to get the previous class it comes up with logging for
every call.

On 10/25/07, orko <[EMAIL PROTECTED]> wrote:
>
>   Hi every one,
> I am trying to replace my current logging system into log4j. There is a
> logging object (logging.java) which acts as a layer between logging system
> and my application, so that other developers don't have to worry about this
> change. So when a log method (debug, or trace) is called, it gets
> initialized from this layer.
>
> I have been trying to understand how the file name and line number (%f,
> %l) works.
> I can see the pattern in appender objects. But can't find how these
> (filename and linenumber) are getting initialized. It always gives me
> logging.java as file name instead of the file name where it was first
> called. Does any one have any idea how it is really working?

Reply via email to