<div dir="ltr"><div><div><div>Hi,<br><br></div>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).<br><br></div><div>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.<br><br>First, I believe (imho) that logger name is much more significant than class and method name.<br></div><div>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.<br></div><div><br></div>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? </div><div><br>[1] <a href="https://cloud.google.com/appengine/docs/java/logs/">https://cloud.google.com/appengine/docs/java/logs/</a><br>[2] <a href="https://cloud.google.com/appengine/docs/java/javadoc/com/google/appengine/api/log/AppLogLine">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">https://cloud.google.com/logging/docs/api/ref/rest/v1beta3/LogLine</a><br></div></div>