2013-02-12 65 views
4

我希望能够从可能是Web应用程序的一部分或命令行应用程序的程序包中进行调试目的日志记录如何在dartlang(Dartium或命令行)中查看Logger的输出

目前我使用

print('some text'); 

不过,虽然我已经习惯在Java中使用java.util.logging.Logger中的我无法在运行什么是印刷(DEBUG,INFO,...) 控制,我可以没有找到在web或命令行应用程序中使用dart的日志包中的Logger类的方法。上述

Logger logger = new Logger('test'); 
logger.info('some text'); 

简单代码编译细,但我不能看到任何输出中在Dartium的控制台或在DartEditor输出窗格。

有没有人成功地使用它(并看到一些文字)?

回答

8

在我的飞镖蝙蝠带,我把这样的函数:

void printLogRecord(LogRecord r) { 
    print("${r.loggerName} ${r.level} ${r.message}"); 
} 

然后,我将它添加到记录器,通常是根记录:

Logger.root.level = Level.FINE; 
Logger.root.onRecord.listen(printLogRecord); 
+0

看起来我们应该更新记录器以使用流。我打开http://code.google.com/p/dart/issues/detail?id=8508 – 2013-02-12 22:26:04

+1

我更新了示例以反映最新的语法。 – enyo 2014-01-25 04:47:20

+1

感谢您的支持!只是想我会指出,如果你打印(“$ {r}”); toString方法将自动包含级别,loggerName和消息。 – jgrowl 2015-02-26 22:08:12

1

随着lastes m4发布这是我工作的API:

Logger.root.level = Level.FINEST; 
Logger.root.onRecord.listen((LogRecord r) { 
    window.console.log('${r.loggerName}(${r.level}): ${r.message}'); 
});