Назад | Перейти на главную страницу

Ведение журнала с отметкой времени

Я пытаюсь добавить к записям журнала метку времени, но сгенерированные метки времени, похоже, не меняются со временем:

#!/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

Кто-нибудь знает, что я делаю не так?

Сравните и сравните с:

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

В вашей версии СЕЙЧАС определяется один раз как это время и остается таким до конца выполнения скрипта. Выше дата генерируется во время «эха».

Если вы не хотите добавлять дату каждый раз, вы можете использовать функцию:

#!/bin/sh

logtest() {
    echo "`date +"%Y-%m-%d %H:%M:%S"` $1"
}

logtest "Logging something"
sleep 2
logtest "Logging something else"

Что не так со старым добрым logger команда? :)

#!/bin/sh

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

Регистратор также позволяет использовать приоритеты системного журнала.

Вы создаете временную метку только один раз, когда объявляете переменную. Он не будет обновляться автоматически.

Попробуй это:

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