Hướng dẫn nodejs log line number - số dòng nhật ký nodejs
Tôi đã tìm thấy câu trả lời của Dmitry Druganov rất hay, nhưng tôi đã thử nó trên Windows 10 (với Node 8.9.4) và nó không hoạt động tốt. Đó là in toàn bộ con đường, một cái gì đó như: Show
Vì vậy, tôi đã nói câu trả lời và thực hiện những cải tiến này (theo quan điểm của tôi):
Đây là:
Và đây là đầu ra mới:
Đây là mã được thu nhỏ bởi mã (240 byte): Giả sử bạn đang chạy Node.js trên một máy từ xa, Remote.example.com, mà bạn muốn có thể gỡ lỗi. Trên máy đó, bạn nên khởi động quá trình nút với trình kiểm tra chỉ nghe localhost (mặc định).Public • Published a year ago
Gỡ lỗi ứng dụng Node.js của bạn với Chrome Devtools bằng cách sử dụng quy trình trung gian dịch giao thức Thanh tra được sử dụng trong crom cho giao thức trình gỡ lỗi V8 được sử dụng trong Node.js. 1.0.5 & nbsp; • & nbsp; public & nbsp; • & nbsp; xuất bản một năm trướcReadme Khám phá Betaconst logger = require('logger-line-number') logger.log('test') //2021-02-03 13:28:30 test.js:3:8 [INFO] test logger.error('error') 2021-02-03 13:28:30 test.js:3:8 [ERROR] error logger.debug('debug') //2021-02-03 13:28:30 test.js:3:8 [DEBUG] debug logger.setLogType(logger.LOG_TYPES.NONE) //禁用打印日志 logger.setLogType(logger.LOG_TYPES.ERROR) //打印 错误 日志 logger.setLogType(logger.LOG_TYPES.NORMAL) //打印 错误 消息 日志 logger.setLogType(logger.LOG_TYPES.DEBUG) //打印 错误 消息 调试 日志 0 phụ thuộcHướng dẫn này sẽ giúp bạn bắt đầu gỡ lỗi ứng dụng và tập lệnh Node.js của bạn. Khi bắt đầu với công tắc 1, quy trình Node.js lắng nghe cho một máy khách gỡ lỗi. Theo mặc định, nó sẽ lắng nghe tại máy chủ và cổng 127.0.0.1:9229. Mỗi quá trình cũng được gán một UUID duy nhất.Khách hàng của Thanh tra phải biết và chỉ định địa chỉ máy chủ, cổng và UUID để kết nối. Một URL đầy đủ sẽ trông giống như 2.
Node.js cũng sẽ bắt đầu nghe tin nhắn gỡ lỗi nếu nhận được tín hiệu 3. . Trong Node.js 8 trở lên, nó sẽ kích hoạt API của Thanh tra.Vì trình gỡ lỗi có quyền truy cập đầy đủ vào môi trường thực thi Node.js, một tác nhân độc hại có thể kết nối với cổng này có thể thực thi mã tùy ý thay mặt cho quy trình Node.js. Điều quan trọng là phải hiểu ý nghĩa bảo mật của việc đưa cổng trình gỡ lỗi trên mạng công cộng và tư nhân. Nếu trình gỡ lỗi bị ràng buộc với địa chỉ IP công khai hoặc 0,0.0.0, bất kỳ máy khách nào có thể đến địa chỉ IP của bạn sẽ có thể kết nối với trình gỡ lỗi mà không có bất kỳ hạn chế nào và sẽ có thể chạy mã tùy ý. Theo mặc định 5 liên kết với 127.0.0.1. Bạn cần cung cấp một địa chỉ IP công cộng hoặc 0,0.0.0, v.v., nếu bạn có ý định cho phép các kết nối bên ngoài với trình gỡ lỗi. Làm như vậy có thể đưa bạn đến một mối đe dọa an ninh có khả năng đáng kể. Chúng tôi khuyên bạn nên đảm bảo tường lửa thích hợp và điều khiển truy cập tại chỗ để ngăn ngừa phơi nhiễm bảo mật.Xem phần về 'Kích hoạt các kịch bản gỡ lỗi từ xa' theo một số lời khuyên về cách cho phép khách hàng gỡ lỗi từ xa kết nối một cách an toàn. Ngay cả khi bạn liên kết cổng Thanh tra với 127.0.0.1 (mặc định), bất kỳ ứng dụng nào chạy cục bộ trên máy của bạn sẽ có quyền truy cập không giới hạn. Điều này là do thiết kế để cho phép gỡ lỗi cục bộ có thể gắn kết thuận tiện. Trình duyệt, websockets và chính sách đồng nghĩaCác trang web mở trong trình duyệt web có thể thực hiện các yêu cầu của WebSocket và HTTP trong mô hình bảo mật trình duyệt. Kết nối HTTP ban đầu là cần thiết để có được ID phiên gỡ lỗi duy nhất. Chính sách có nguồn gốc cùng với các trang web không thể thực hiện kết nối HTTP này. Để bảo mật bổ sung chống lại các cuộc tấn công phục hồi DNS, Node.js xác minh rằng các tiêu đề 'máy chủ' cho kết nối chỉ định địa chỉ IP hoặc 6 chính xác.Các chính sách bảo mật này không cho phép kết nối với một máy chủ gỡ lỗi từ xa bằng cách chỉ định tên máy chủ. Bạn có thể làm việc xung quanh hạn chế này bằng cách chỉ định địa chỉ IP hoặc bằng cách sử dụng các đường hầm SSH như được mô tả dưới đây. Một trình gỡ lỗi CLI tối thiểu có sẵn với 7. Một số công cụ thương mại và nguồn mở cũng có thể kết nối với thanh tra Node.js.
JetBrains Webstorm và các IDEBRAINS IDE khác
Tùy chọn dòng lệnhBảng sau đây liệt kê tác động của các cờ thời gian chạy khác nhau đối với việc gỡ lỗi:
--Inspect-brk Phá vỡ trước khi mã người dùng bắt đầu
--Inspect-brk = [host: port]
8Spawn con quy trình để chạy tập lệnh của người dùng dưới cờ --Inspect; và sử dụng quy trình chính để chạy trình gỡ lỗi CLI. 9--debug or --debug-brk switches in version 7 and earlier, Node.js listens for debugging commands defined by the discontinued V8 Debugging Protocol on a TCP port, by default 1. Any debugger client which speaks this protocol can connect to and
debug the running process; a couple popular ones are listed below.Chúng tôi khuyên bạn nên không bao giờ có trình gỡ lỗi lắng nghe địa chỉ IP công khai. Nếu bạn cần cho phép các kết nối gỡ lỗi từ xa, chúng tôi khuyên bạn nên sử dụng các đường hầm SSH. Chúng tôi chỉ cung cấp ví dụ sau đây cho mục đích minh họa. Vui lòng hiểu rủi ro bảo mật khi cho phép truy cập từ xa vào một dịch vụ đặc quyền trước khi tiến hành. Giả sử bạn đang chạy Node.js trên một máy từ xa, Remote.example.com, mà bạn muốn có thể gỡ lỗi. Trên máy đó, bạn nên khởi động quá trình nút với trình kiểm tra chỉ nghe localhost (mặc định). Bây giờ, trên máy cục bộ của bạn từ nơi bạn muốn bắt đầu kết nối máy khách gỡ lỗi, bạn có thể thiết lập một đường hầm SSH: |