带时间戳的日志记录

带时间戳的日志记录

我正在尝试在日志条目前面添加一个时间戳,但是生成的时间戳似乎不会随着时间的推移而改变:

#!/bin/sh

NOW=$(date +"%Y-%m-%d %H:%M:%S")

echo "$NOW Logging something"
sleep 2
echo "$NOW Logging something else"

的输出为:

2012-03-02 12:32:49 Logging something
2012-03-02 12:32:49 Logging something else

有人知道我做错什么了吗?

答案1

比较并对比:

echo "`date +"%Y-%m-%d %H:%M:%S"` 记录某些内容"
睡眠2
echo "`date +"%Y-%m-%d %H:%M:%S"` 记录其他内容"

在您的版本中,NOW 被定义为该时间一次,并且在脚本运行的其余时间内保持不变。上面,日期是在“回显”时生成的。

如果您不想每次都添加日期,可以使用以下函数:

/bin/sh #!/bin/sh 复制代码

对数测试() {
    回显“`日期 +”%Y-%m-%d%H:%M:%S“`$ 1”
}

logtest“记录一些内容”
睡眠2
logtest“记录其他内容”

答案2

logger命令有什么问题?:)

#!/bin/sh

logger -t yourprogram Hello, this is a message
sleep 2
logger -t yourprogram Hello, this is another message

记录器还允许您使用系统日志优先级。

答案3

声明变量时,仅创建一次时间戳。它将不会自动更新。

尝试这个:

echo `date +"%Y-%m-%d %H:%M:%S"` "Logging something"

相关内容