Node.js console.log so với console.info


93

Lợi ích của việc sử dụng console.logvs console.info? Hoặc bất kỳ lệnh giao diện điều khiển nào khác cho vấn đề đó?

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

vs

console.log("log");

Tôi nghĩ rằng nó có thể thay đổi màu của đầu ra hoặc nối một số loại nhãn, nhưng dường như tất cả chúng đều làm điều tương tự. Và theo tài liệu ở đây:

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

họ dường như đều làm giống như console.log


Có thể có bản sao của: stackoverflow.com/questions/14437428/…
Craig Wayne

3
Một số mẹo: Bạn có thể sử dụng màu sắc để có cái nhìn rõ hơn về: console.log ('% c Văn bản Mẫu', 'color: green;'); Hoặc thêm một số VAR vào văn bản bằng cách sử dụng: console.log (`Mẫu $ {biến}`, 'color: green;');
Gilberto B. Terra Jr.

Cảm ơn, tôi không biết nó cũng hoạt động trên nút js

Câu trả lời:


81

Theo tài liệu mà bạn đã liên kết đến console.errorconsole.warnkết quả đầu ra stderr. Những người khác xuất ra stdout.

Nếu bạn đang làm đường ống hoặc chuyển hướng từ node.jssự khác biệt là quan trọng.

Có rất nhiều JavaScript được viết để chạy trong cả trình duyệt và Node.js. Có nút triển khai bảng điều khiển đầy đủ cho phép mã tương thích chéo cao hơn.

Trong hầu hết các trình duyệt, chúng không chỉ đăng nhập bằng các màu khác nhau mà bạn còn có thể lọc để xem các thông báo cụ thể.

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

Cảm ơn bạn! Đó là trình duyệt mà nó hiển thị khác nhau. Tôi đang tìm kiếm các thay đổi màu sắc trong thiết bị đầu cuối.
seantomburke

2
Trong node( 8.11.4) và Chrome 67, cũng có console.debug(và rất có thể là các phiên bản trước đó). debugxếp hạng bên dưới log.
Marcus Junius Brutus

41

console.log() ngắn hơn console.info()

Chúng giống nhau, và đó là lợi thế duy nhất.

nhập mô tả hình ảnh ở đây


65
Tôi phản đối vì "đó là lợi thế duy nhất" đơn giản là không đúng và khá thiển cận. Các phương pháp cũng có thể có cách triển khai giống hệt nhau, nhưng chúng có ý nghĩa khác nhau . chẳng hạn như giao diện điều khiển cho phép bạn triển khai lọc cấp độ nhật ký.
rixo

4
console.log = stdout, trong khi console.error = stderr
Craig Wayne

9
developer.mozilla.org/en-US/docs/Web/API/Console/info - "Trong Firefox và Chrome, một biểu tượng" i "nhỏ được hiển thị bên cạnh các mục này trong nhật ký của Web Console" - image.ibb .co / gYrZHe / infolog.png
ed '

4
@EdwardSammutAlessi Tôi đang sử dụng Chrome và không thể tạo lại và làm cho biểu tượng i xuất hiện
chevybow

Một điểm dữ liệu: Firefox 78: in ⓘ (i trong vòng tròn) trước khi xuất log.info. Chrome 84: không.
Tom Hundt

34

Mặc dù console.logconsole.infocó thể không khác nhau, nhưng vẫn có những công dụng khác ngoại trừ tô màu đơn thuần. Ví dụ: khi sử dụng linter như eslint, bạn có thể đặt console.logđể cung cấp thông báo cảnh báo. Giả sử bạn chỉ muốn sử dụng console.logcho mục đích phát triển của mình và sử dụng console.infothông tin mà người dùng cuối có thể cần. Với linter giờ đây, bạn có một lời nhắc trực tiếp và rõ ràng về tính năng tạm thời của mình console.logđể hỗ trợ bạn trong quá trình phát triển, nhưng phải được xóa trước khi cam kết / xuất bản.


3
Tôi không biết tại sao tôi lại thấy câu trả lời này phù hợp hơn so với tất cả những câu trả lời khác, thật tuyệt vời @Figidon.
Shreyan Mehta

1
Tôi đồng tình. Giải pháp tuyệt vời để sử dụng với eslint cho nhà phát triển và chế độ sản xuất. Bạn sẽ không vượt qua console.log! (quyền trượng và thanh kiếm trong tay)
Tomas Vancoillie

26

Theo các tài liệu, nó khá rõ ràng.

console.info ([data], [...]) # Giống như console.log.

console.error ([data], [...]) # Tương tự như console.log nhưng in ra stderr.

console.warn ([data], [...]) # Giống như console.error.

Điều này có nghĩa là không có lợi ích hoặc nhược điểm. info== logwarn== error. Trừ khi bạn muốn in stderr, infovà hoặc logsẽ làm việc.


23

Nhìn bề ngoài, Không khác biệt thực sự giữa console.log, console.info, console.warn, cũng như console.errorvề phía máy chủ (terminal) .

Tuy nhiên, có module nhẹ mà thêm màu xanh, màu cam và màu đỏ cho console.info, console.warncũng như console.errortương ứng. Do đó, API bảng điều khiển hoạt động giống như phía máy khách.

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

nhập mô tả hình ảnh ở đây


9

Thêm một chi tiết nữa ngoài câu trả lời được chấp nhận: Trong Chrome và FireFox, console.infocác dòng nhật ký được đặt trước bằng một biểu tượng i nhỏ trong khi console.logcác dòng thì không. warnerrorcác dòng có tiền tố là một tam giác nhỏ và x , tương ứng.


Như đã quan sát ở những nơi khác: Firefox 78: in ⓘ (i trong vòng tròn) trước khi xuất log.info. Chrome 84: không
Tom Hundt

3

stdin Một luồng có thể đọc được để đọc đầu vào từ người dùng.

stdout Một luồng có thể ghi, đồng bộ hoặc không đồng bộ.

stderr Chặn luồng có thể ghi đồng bộ dành cho các thông báo lỗi.

Các hàm stdout hoặc không chặn là: console.log, console.info, use.puts, use.print và Stderr.

Các hàm chặn là: console.warn, console.error, Prac.debug và process.stdin (một luồng có thể đọc được để nhận thông tin đầu vào của người dùng).


1

Nó đã được thiết lập rằng nhật ký và thông tin về cơ bản giống nhau, nhưng tôi không chắc điều đó trả lời hoàn toàn câu hỏi:

Lợi ích của việc sử dụng console.log so với console.info là gì?

Một lợi ích, ngoài những gì đã được đề cập, là bạn có thể sử dụng mỗi cái cho một mục đích khác nhau. Ví dụ: bạn có thể sử dụng console.log chỉ để gỡ lỗi nhanh và đưa mọi thứ ra bảng điều khiển, trong khi bạn có thể sử dụng console.info cho các thông báo vĩnh viễn mà bạn muốn xuất ra bảng điều khiển trong mã của mình, chẳng hạn như thông tin về trạng thái ứng dụng hiện tại . Sau đó, khi bạn gặp trường hợp một đối tượng ngẫu nhiên được in trong bảng điều khiển của mình và bạn nhận ra rằng mình đã vô tình để lại một câu lệnh nhật ký ở đó ở đâu đó, bạn có thể thực hiện tìm kiếm toàn cầu cho 'console.log' và xóa mọi trường hợp và có sự tự tin bạn đã không xóa bất cứ điều gì quan trọng mà bạn muốn để lại trong đó.


0

Các cấp độ ghi nhật ký khác nhau cho phép bạn quản lý mức độ tiếng ồn trong bảng điều khiển của mình: Trong cả hai trình phát triển Firefox (hiện tôi đang sử dụng 78) và Chrome (84), bảng điều khiển js cho phép bạn chọn "mức gỡ lỗi" của đầu ra bạn muốn xem. FF cho phép bạn chuyển đổi tầm nhìn của console.error, .warn, .log, .info, và .debugthông điệp bằng cách nhấn các nút riêng cho mỗi (đó cho bạn thấy bao nhiêu người đã bị đàn áp, khi "off"), trong khi đó Chrome có một thả xuống với các dấu chọn bên cạnh các mục ( .info.logđược điều khiển bởi "Thông tin" một và .debugbởi "Chi tiết"). Nhãn thả xuống của Chrome ("Tất cả các cấp" hoặc bất cứ thứ gì bạn đặt) chuyển sang màu đỏ nếu đầu ra bị chặn.


0

Tôi đã thấy đâu console.loglà nơi tạm thời ghi thông tin trạng thái để gỡ lỗi.

console.info là một thứ lâu dài hơn - chẳng hạn như nói cổng nào đó đang chạy trên cổng nào và điều gì đó bạn sẽ không cắt ra sau khi gỡ lỗi xong.

Điều này giúp bạn dễ dàng xóa mã để thực hiện nó. Bạn thậm chí có thể yêu cầu linter của bạn có một quy tắc để ngăn console.log bị cam kết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.