
Hi Mads, The character is output '?' by %class (or %C), %method (or %M), %line (or %L) if caller information could not be computed. Incorrect caller information is usually due to logging via wrappers or interceptors in dynamic languages. In other words, computation of caller information is sensitive to the method invocation stack. Are you using a dynamic language, AOP or a logger wrapper? In any case, an actual stack trace would help understanding the problem. For example, if the following logger call results in incorrect caller info: logger.debug("Hello world"); print a stack trace just before (or after) that logger invocation, e.g. new Exception("testing").printStackTrace(); logger.debug("Hello world"); I'd appreciate if you could post the stack trace here. Best regards, Can you post a stack trace On 6/13/2013 2:43 PM, Mads Bondo Dydensborg wrote:
Hi there.
Using <slf4j.version>1.7.5</slf4j.version> <logback.version>1.0.13</logback.version>
And, with the following in logback.xml:
<!-- Copy encoder from console --> <encoder> <!-- <pattern>%d{ISO8601} [%thread] rid:%X{trackingId} %-5level %logger{5} - %msg%n</pattern> --> <!-- <pattern>%d{ISO8601} [%thread] rid:%X{trackingId} %-5level %logger{5}.%M:%L - %msg%n</pattern> --> <pattern>%d{ISO8601} [%thread] rid:%X{trackingId} %-5level %class{5}.%M:%L - %msg%n</pattern> <immediateFlush>true</immediateFlush> <outputPatternAsHeader>true</outputPatternAsHeader> </encoder>
This outputs #logback.classic pattern: %d{ISO8601} [%thread] rid:%X{trackingId} %-5level %class{5}.%M:%L - %msg%n 2013-06-13 12:55:49,486 [main] rid: TRACE ?.?:? - entry
Changing to the first commented pattern, gets me:
#logback.classic pattern: %d{ISO8601} [%thread] rid:%X{trackingId} %-5level %logger{5} - %msg%n 2013-06-13 14:35:20,450 [main] rid: TRACE d.d.o.EnvironmentFactory - entry
Second commented pattern: #logback.classic pattern: %d{ISO8601} [%thread] rid:%X{trackingId} %-5level %logger{5}.%M:%L - %msg%n 2013-06-13 14:36:37,689 [main] rid: TRACE d.d.o.EnvironmentFactory.?:? - entry
Any idea what I am doing wrong here? The point was to get method name and line numbers, as per this: http://logback.qos.ch/manual/layouts.html#conversionWord
Any clues?
Thanks in advance.
Mads