Console.log мовою Dart


Відповіді:


119

Просто:

print('This will be logged to the console in the browser.');

Базова printфункція верхнього рівня завжди доступна у всіх реалізаціях Dart (браузер, віртуальна машина тощо). Оскільки Dart має інтерполяцію рядків, його легко використовувати для друку корисних матеріалів:

var a = 123;
var b = new Point(2, 3);
print('a is $a, b is ${b.x}, ${b.y}');

56

Крім того, dart:htmlдозволяє використовувати window.consoleоб'єкт.

import 'dart:html';

void main() {
  window.console.debug("debug message");
  window.console.info("info message");
  window.console.error("error message");
}

Здається, це працює у firefox, принаймні я тестував window.console.debug ('')
Gökhan Barış Aker

1
Ця відповідь набагато краща, оскільки ви можете переходити графіки об'єктів у консолі так само, як це можна робити з будь-якою бібліотекою JS. Працює в поточному FF.
Акос Лукач

8

Це легко! Просто імпортуйте пакет реєстрації:

import 'package:logging/logging.dart';

Створіть об'єкт реєстратора:

final _logger = Logger('YourClassName');

Потім у вашому коді, коли вам потрібно щось записати:

_logger.info('Request received!');

Якщо ви зловите виняток, ви можете зареєструвати його та стек-трасування також.

_logger.severe('Oops, an error occurred', err, stacktrace);

Документація пакету реєстрації: https://github.com/dart-lang/logging


3
це залежність, її потрібно додати до pubspec.yml залежностей: реєстрація: ^ 0.11.4
ir2pid

Вам також потрібно додати трохи коду, щоб змусити Logger зробити щось корисне. Якщо у вас є лише код вище, повідомлення журналу будуть відправлені у порожнечу. Наприклад, щоб направити повідомлення журналу на консоль, ви можете використовувати такий код: // Configure logging to output to console: Logger.root.level = Level.ALL; Logger.root.onRecord.listen((record) { print('${record.level.name}: ${record.time}: ${record.message}'); });
Pi Da

Це не відповідає на питання про "запис на консоль". Виконання того, що ви сказали, нічого не робить, якщо ви не зареєструєте реєстратор, який пише на консоль ... І тоді ви знову повертаєтеся до спроби знайти спосіб писати на консолі.
Stephan Leclercq

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.