I think JDK14LoggerAdapter is the place to start. As I am not familiar with Appengine logging I am afraid I can't help much.
On 3/9/2016 14:18, Daniel Felix Ferber wrote:
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 <[email protected] <mailto:[email protected]>>: 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 [email protected] <mailto:[email protected]> http://mailman.qos.ch/mailman/listinfo/slf4j-user _______________________________________________ slf4j-user mailing list [email protected] http://mailman.qos.ch/mailman/listinfo/slf4j-user
_______________________________________________ slf4j-user mailing list [email protected] http://mailman.qos.ch/mailman/listinfo/slf4j-user
