Node.js console.log проти console.info


92

Яка перевага використання console.logvs console.info? Або будь-яка інша команда консолі з цього приводу?

console.info("info");
console.error("error");
console.warn("warn");

проти

console.log("log");

Я думав, що це може змінити колір виводу або об'єднати якусь мітку, але, схоже, всі вони роблять одне і те ж. А згідно з документацією тут:

https://nodejs.org/api/console.html#console_console_info_data

здається, всі вони роблять те саме, що console.log



3
Деякі поради: Ви можете використовувати кольори для кращого огляду: console.log ('% c Sample Text', 'color: green;'); Або додайте в текст трохи VAR за допомогою: console.log (`Зразок $ {змінна}`, 'color: green;');
Gilberto B. Terra Jr.

Дякую, я не знав, що це також працювало на node js

Відповіді:


81

Відповідно до документації, до якої ви прив’язали console.errorта console.warnвиводите stderr. Інші результати до stdout.

Якщо ви робите трубопроводи або переспрямування з node.jsрізниці, це важливо.

Існує багато написаних JavaScript для запуску як у браузері, так і в Node.js. Наявність вузла, що реалізує повну консоль, забезпечує більшу перехресну сумісність коду.

У більшості браузерів вони не тільки входять у різні кольори, але й фільтрують, щоб побачити конкретні повідомлення.

console.info("info");
console.error("error");
console.warn("warn");
console.log("log");

Дякую! Це був браузер, де він відображається по-різному. Я шукав у терміналі зміни кольору.
seantomburke

2
У node( 8.11.4) та Chrome 67 є також console.debug(і цілком ймовірно також попередні версії). debugранги нижче log.
Маркус Юній Брут,

41

console.log() коротше ніж console.info()

Вони одне і те ж, і це єдина перевага.

введіть тут опис зображення


65
Я підтримую, тому що "це єдина перевага" просто не відповідає дійсності і досить недалекоглядна. Методи цілком можуть мати однакову реалізацію, але вони мають різне значення . консоль дозволяє вам застосувати фільтрацію рівня журналу, наприклад, тривіально.
rixo

4
console.log = stdout, тоді як console.error = stderr
Крейг Уейн

9
developer.mozilla.org/en-US/docs/Web/API/Console/info - "У Firefox та Chrome біля цих елементів у журналі веб-консолі відображається невеликий значок" i "- image.ibb .co / gYrZHe / infolog.png
ред »

4
@EdwardSammutAlessi Я використовую Chrome і не зміг відтворити і показати піктограму i
chevybow

Одна точка даних: Firefox 78: друкує ⓘ (я в колі) перед виходом log.info. Chrome 84: ні.
Том Хандт,

34

Хоча console.logі console.infoможе не відрізнятися, існують інші способи використання, крім простого фарбування. Наприклад, коли ви використовуєте підводку, як eslint, ви можете налаштувати console.logповідомлення попередження. Скажімо, ви хочете використовувати лише console.logдля своїх цілей розробки та використовувати console.infoдля інформації, яка може знадобитися кінцевим користувачам. Завдяки лінтеру ви тепер маєте видиме і пряме нагадування про тимчасове, console.logяке допомагає вам під час розробки, але його потрібно видалити перед комітами / публікацією.


3
Не знаю, чому я знайшов цю відповідь більш доречною, ніж усі інші, приємна @Figidon.
Шреян Мехта

1
Я погоджуюсь. Чудове рішення для використання з eslint для розробників та режимів виробництва. Ви не пройдете console.log! (посох та меч у руці)
Томаш Ванкойлі

26

Згідно з документами це досить зрозуміло.

console.info ([дані], [...]) # Те саме, що console.log.

console.error ([data], [...]) # Те саме, що console.log, але друкується в stderr.

console.warn ([дані], [...]) # Те саме, що і console.error.

Це означає, що немає жодної вигоди чи мінусу. info== logта warn== error. Хіба що ви хочете надрукувати stderr, infoі чи logбуде працювати.


23

Візуально Немає різниці на насправді серед console.log, console.info, console.warn, а також в console.errorвідношенні стороні сервера (термінал) .

Однак є легкі модулі, які додають синій, помаранчевий та червоний кольори для console.info, console.warnа також console.errorвідповідно. Таким чином, консольний API поводиться як на стороні клієнта.

 npm i console-info console-warn console-error --save-dev;

введіть тут опис зображення


9

Ще одна деталь на додаток до прийнятої відповіді: У Chrome та FireFox console.infoрядки журналу мають префікс з невеликим значком i, тоді як console.logрядки ні. warnа errorлінії мають префікс з маленьким трикутником та x відповідно.


Як зазначалося в інших місцях: Firefox 78: друкує ⓘ (i по колу) перед виходом log.info. Chrome 84: ні
Том Хандт,

3

stdin Читається потік для читання вводу від користувача.

stdout Потік для запису, синхронно або асинхронно.

stderr Блокуючий синхронний потік для запису, призначений для повідомлень про помилки.

У стандартний висновок або НЕ-блокуючі функції: console.log, console.info, util.puts, util.print і Stderr.

У блокують functons є: console.warn, console.error, util.debug і process.stdin (зчитування потік для отримання призначеного для користувача введення).


1

Було встановлено, що журнал та інформація - це в основному одне і те ж, але я не впевнений, що повністю відповідає на питання:

Яка перевага використання console.log проти console.info?

Однією з переваг, крім того, що вже було згадано, є те, що ви можете використовувати кожну з різних цілей. Наприклад, ви можете використовувати console.log лише для швидкої налагодження та виплескування речей на консоль, тоді як ви можете використовувати console.info для постійних повідомлень, які ви хочете вивести на консоль у своєму коді, таких як інформація про поточний стан програми . Потім, коли у вас виникає ситуація, коли випадковий об’єкт друкується на вашій консолі, і ви розумієте, що залишили там десь випадок з журналу випадково, ви можете зробити загальний пошук для „console.log“ і видалити кожен екземпляр і мати впевненість ви не видалили нічого важливого, що мали намір залишити там.


0

Різні рівні реєстрації дозволяють керувати рівнем шуму у вашій консолі: як у програмах розробки Firefox (зараз я використовую 78), так і в Chrome (84), консоль js дозволяє вибрати, який "рівень налагодження" виводу потрібно подивитися. FF дозволяє перемикати видимість console.error, .warn, .log, .info, і .debugповідомлень, натиснувши окремі кнопки для кожного (які показують, як багато з них були придушені, коли «вимкнено»), в той час як Chrome має список, що випадає з прапорцями поруч з пунктами ( .infoі .logконтролюються "Інформаційна" та .debug"Багатослівна"). Випадаюча мітка Chrome ("Усі рівні" або будь-що інше, що ви встановили) стає червоною, якщо вихід вимкнено.


0

Я бачив, де console.logтимчасово реєструється інформація про стан для налагодження.

console.info є більш постійною річчю - наприклад, сказати, на якому порту щось працює, і чогось, що ви не вирізали б після завершення налагодження.

Це полегшує очищення коду для його фіксації. Ви навіть можете запросити у свого лінтера правило, яке запобігає фіксації console.log.

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