使用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命令以提取所需的信息。