<div dir="ltr"><div><div>Hi Ceki,<br><br></div>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.<br></div>Maybe I am missing something and trying to solve it on the wrong way?<br><div><br>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.<br><br></div><div>Best regards,<br></div><div>Daniel <br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-03-09 4:37 GMT-03:00 Ceki Gulcu <span dir="ltr"><<a href="mailto:ceki@qos.ch" target="_blank">ceki@qos.ch</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Daniel,<br>
<br>
Do you intend to write this wrapper for Appengine. If so, I would happy be to reference it from the SLF4J web-site.<br>
<br>
--<br>
Ceki<div><div class="h5"><br>
<br>
<br>
On 3/9/2016 4:54, Daniel Felix Ferber wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
I have been wondering why the logger name is missing for application log<br>
messages on Google Appengine. Instead of the logger name, it displays<br>
the sourceClassName and sourceMethodName. (Appengine uses its own<br>
logging framework whose API is identical to JUL).<br>
<br>
After extensive research I found [1,2,3] and I infer that Appengine<br>
converts JUL LogRecords to AppLogLines, which are stored as LogLine JSON<br>
representation. Note that AppLogLine and LogLine have no 'logger name'<br>
attribute. I conclude that Appengine lacks the 'logger name' concept on<br>
its Cloud Platform Log storage.<br>
<br>
First, I believe (imho) that logger name is much more significant than<br>
class and method name.<br>
Second, as you cannot see the logger name, it gets challenging to<br>
configure proper log levels to potentially unknown logger names. This<br>
issue mitigated if there is always one logger per class, named exactly<br>
as the class FQCN.<br>
<br>
I think that SLF4J could aid under Appengine. For example, when adapting<br>
log message from SLF4J to JUL, instead of calling fillCallerData(fqcn,<br>
logRecord), it could set sourceMethodName to null and sourceClassName to<br>
the logger name... Maybe as a wrapper implementation for Appengine?<br>
<br>
[1] <a href="https://cloud.google.com/appengine/docs/java/logs/" rel="noreferrer" target="_blank">https://cloud.google.com/appengine/docs/java/logs/</a><br>
[2]<br>
<a href="https://cloud.google.com/appengine/docs/java/javadoc/com/google/appengine/api/log/AppLogLine" rel="noreferrer" target="_blank">https://cloud.google.com/appengine/docs/java/javadoc/com/google/appengine/api/log/AppLogLine</a><br>
[3] <a href="https://cloud.google.com/logging/docs/api/ref/rest/v1beta3/LogLine" rel="noreferrer" target="_blank">https://cloud.google.com/logging/docs/api/ref/rest/v1beta3/LogLine</a><br>
</blockquote></div></div>
_______________________________________________<br>
slf4j-user mailing list<br>
<a href="mailto:slf4j-user@qos.ch" target="_blank">slf4j-user@qos.ch</a><br>
<a href="http://mailman.qos.ch/mailman/listinfo/slf4j-user" rel="noreferrer" target="_blank">http://mailman.qos.ch/mailman/listinfo/slf4j-user</a></blockquote></div><br></div>