Почему сообщения об ошибках навсегда, зарегистрированного
В настоящее время я запускаю forever в скрипте bash:
forever -v -l log/system.log -e log/systemerr.log -w --watchIgnore '{log,data,node_modules}' app.js
Я также использую log4js для записи журналов для моего приложения (со следующей конфигурацией):
log4js.configure({
appenders: [
//{ type: 'console' },
{
type: "file",
absolute: true,
filename: "./log/app.log",
maxLogSize: 1000000,
backups: 10
}
]});
Все, кажется, работает в том смысле, что вывод моего приложения выводится в приложение.выход log and forever'S-l идет в систему.журнал:
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
Но следующее идет в консоль, и я бы подумал, что это пойдет в systemerr.журнал:
error: Could not read .foreverignore file.
error: ENOENT, open '/home/blah/blah/.foreverignore'
error: Forever detected script exited with code: 1
error: Script restart attempt #1
Как я могу получить эту информацию об ошибке, которую я мыслить порождается вечно, в systemerr.бревно?
1 ответ:
навсегда
-e ERRFILE
желаемый вариант:Логирует stderr из дочернего скрипта в ERRFILE
Ошибки, производимые forever , не будут регистрироваться здесь, и это здорово, поскольку вы получаете только ошибки, производимые вашим приложением здесь.
Если вы действительно хотите получить навсегда ошибки в файле используйте перенаправление ввода-вывода для
STDERR
в вашем скрипте обертывания bash следующим образом:forever ... 2>> forever-errors.log
Если вы все еще хотите по какой-то причине получить их ошибки в том же файле, что и журнал ошибок приложения, можно перенаправить и добавить
STDERR
в тот же файл, что и журнал ошибок.