使用awk解析Ubuntu Node.js日志可以幫助你提取和分析日志中的關鍵信息。以下是一個基本的示例,展示了如何使用awk來解析Node.js應用程序的日志文件。
假設你的Node.js日志文件(例如:app.log)具有以下格式:
[2021-09-01 12:34:56] INFO: Server started on port 3000
[2021-09-01 12:35:12] ERROR: Failed to connect to database
[2021-09-01 12:36:23] INFO: User logged in: user1
你可以使用以下awk命令來解析這個日志文件:
awk '/^\[/ {print "Timestamp: " $0}' app.log
這個命令會輸出:
Timestamp: [2021-09-01 12:34:56] INFO: Server started on port 3000
Timestamp: [2021-09-01 12:35:12] ERROR: Failed to connect to database
Timestamp: [2021-09-01 12:36:23] INFO: User logged in: user1
如果你想要提取特定的日志級別(例如:只顯示錯誤日志),可以使用以下命令:
awk '/^\[/ && /ERROR:/ {print "Error: " $0}' app.log
這個命令會輸出:
Error: [2021-09-01 12:35:12] ERROR: Failed to connect to database
你還可以根據需要提取其他信息,例如日期、時間、端口號等。以下是一個更復雜的示例,用于提取日期、時間和日志級別:
awk '{match($0, /^\[/); date = substr($0, RSTART + 1, RLENGTH - 2); match($0, /:(\d{2}):(\d{2}):(\d{2})/); time = ":" $2 ":" $3 ":" $4; log_level = substr($0, index($0, ":") + 1); print "Date: " date ", Time: " time ", Log Level: " log_level}' app.log
這個命令會輸出:
Date: 2021-09-01, Time: 12:34:56, Log Level: INFO
Date: 2021-09-01, Time: 12:35:12, Log Level: ERROR
Date: 2021-09-01, Time: 12:36:23, Log Level: INFO
根據你的需求,你可以修改awk命令以提取所需的信息。