[slf4j-user] Missing logger name on Google Appengine

Daniel Felix Ferber dffforum at gmail.com
Wed Mar 9 13:18:59 UTC 2016


Hi Ceki,

I considered the possibility of writing a wrapper on my own. But first I
would appreciate your advice if that would actually be a reasonable
approach.
Maybe I am missing something and trying to solve it on the wrong way?

One possibility would be a wrapper that is very similar to your
JDK14LoggerAdapter, reusing Appengine's JUL implementation. Another
possibility would be a wrapper that calls Appengine API directly, but I am
not sure if this is possible. I will do some research and prototyping and
let you know if succeeded or not.

Best regards,
Daniel

2016-03-09 4:37 GMT-03:00 Ceki Gulcu <ceki at qos.ch>:

> Hi Daniel,
>
> Do you intend to write this wrapper for Appengine. If so, I would happy be
> to reference it from the SLF4J web-site.
>
> --
> Ceki
>
>
>
> On 3/9/2016 4:54, Daniel Felix Ferber wrote:
>
>> Hi,
>>
>> I have been wondering why the logger name is missing for application log
>> messages on Google Appengine. Instead of the logger name, it displays
>> the sourceClassName and sourceMethodName. (Appengine uses its own
>> logging framework whose API is identical to JUL).
>>
>> After extensive research I found [1,2,3] and I infer that Appengine
>> converts JUL LogRecords to AppLogLines, which are stored as LogLine JSON
>> representation. Note that AppLogLine and LogLine have no 'logger name'
>> attribute. I conclude that Appengine lacks the 'logger name' concept on
>> its Cloud Platform Log storage.
>>
>> First, I believe (imho) that logger name is much more significant than
>> class and method name.
>> Second, as you cannot see the logger name, it gets challenging to
>> configure proper log levels to potentially unknown logger names. This
>> issue mitigated if there is always one logger per class, named exactly
>> as the class FQCN.
>>
>> I think that SLF4J could aid under Appengine. For example, when adapting
>> log message from SLF4J to JUL, instead of calling fillCallerData(fqcn,
>> logRecord), it could set sourceMethodName to null and sourceClassName to
>> the logger name... Maybe as a wrapper implementation for Appengine?
>>
>> [1] https://cloud.google.com/appengine/docs/java/logs/
>> [2]
>>
>> https://cloud.google.com/appengine/docs/java/javadoc/com/google/appengine/api/log/AppLogLine
>> [3] https://cloud.google.com/logging/docs/api/ref/rest/v1beta3/LogLine
>>
> _______________________________________________
> slf4j-user mailing list
> slf4j-user at qos.ch
> http://mailman.qos.ch/mailman/listinfo/slf4j-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.qos.ch/pipermail/slf4j-user/attachments/20160309/5dfafebb/attachment.html>


More information about the slf4j-user mailing list