前言
如题,原本打算在代码中自己写一个类去管理将打印信息收集到log日志中,忽然想到,其实也可以写sh脚本
简单demo1
#!/bin/bash
# 启动应用程序 test,并将标准输出和标准错误输出都追加到 log 文件中
./test >> output.log 2>&1
在这个脚本中,假设应用程序 test
是当前目录下的一个可执行文件。脚本会将 test
的标准输出(stdout)和标准错误输出(stderr)都追加到 output.log
文件中。
效果:
简单demo2:增加日期时间
#!/bin/bash
# 创建一个带有时间戳的函数
timestamp() {
date +"%Y-%m-%d %T"
}
# 启动应用程序 test,并将标准输出和标准错误输出都追加到 log 文件中
./test | while IFS= read -r line; do
echo "$(timestamp) $line" >> output.log
done
效果:
简单美化:
#!/bin/bash
# 创建一个带有时间戳的函数
timestamp() {
date +"%Y-%m-%d %T"
}
# 启动应用程序 test,并将标准输出和标准错误输出都追加到 log 文件中
./test | while IFS= read -r line; do
echo -e "\n$(timestamp) | $line" >> output.log
done
效果:
实时查看命令:
tail -f output.log
当文件更新的时候,tail也会实时更新打印,更多命令自行百度。
实时查看最新的20条数据:
tail -n 20 -f output.log