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?
