2013-02-12 70 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}'); 
});