Google App Engine Java使用java.util.logging创建日志消息。 我想修改显示在开发人员控制台 - 监控 - 日志中的日志消息。这个想法是添加喜欢的用户名一些额外的输出,而不把它在手动每条日志消息:如何自定义Google App Engine Java的日志记录?
log.info("user action");
应该导致日志输出像
user "testuser": user action
所以我创建了一个自己的格式化程序:
public class TestFormatter extends Formatter {
@Override
public String format(LogRecord record) {
// find out username..
return "user " + username + ": " + record.getMessage();
}
}
将此设置为logging.properties中ConsoleHandler的格式化程序不具有效果: java.util.logging.ConsoleHandler.formatter = com.example.guestbook.TestFormatter
当它部署在本地机器上,并试图以编程方式添加这样的:
Logger rootLogger = Logger.getLogger("");
Handler[] handlers = rootLogger.getHandlers();
log.info("Handler[] size: " + handlers.length);
for(Handler h : handlers) {
log.info(h.toString());
h.setFormatter(new TestFormatter());
}
我得到2处理器,一个ConsoleHandler
和一个DevLogHandler
。 但设置格式化程序会导致不显示其他日志。在GAE上,我得到了0处理程序。
当试图进入电影Logger.getGlobal()
,而不是Logger.getLogger("")
,我得到0处理器在本地实例和抛出:SecurityException:没有对GAE修改全局许可。尝试获取处理程序列表时,此例外已出现。
现在我的问题:有没有办法以这种方式修改开发者控制台的日志?如果是,如何?
感谢您的信息。你可以添加链接到票证?这对我的硕士论文来说是一个相当重要的决定;) – Lukas
不幸的是,它是一张私人票证,不在我们公司的用户之外。 –
好的,也许有这个事实的公开来源,或者其他人以任何方式解决了这个问题。 – Lukas