Cron Stderr 및 Stdout을 타임스탬프된 로그 파일로 리디렉션

Cron Stderr 및 Stdout을 타임스탬프된 로그 파일로 리디렉션

cron 프로세스의 로그 파일에 추가하기 위해 stdout 및 stderr을 얻으려고 합니다. 현재 stdout은 예상대로 작동하지만 stderr은 작동하지 않습니다. 내 타임스탬프가 문제의 원인입니다. 파이프 부분을 제거하면 tsstdout과 stderr이 모두 로그 파일에 기록되지만 해당 행에는 필요한 올바른 타임스탬프가 없습니다.

강타 명령:

node index.js | ts '[%Y-%m-%d %H:%M:%S]' >> $(date --utc +\%Y-\%m-\%d).log 2>&1

노드 JS 스크립트:

console.log('log');
console.error('error');

내 로그 파일은 어떻게 생겼나요?

[2020-04-15 16:26:10] log

내 로그 파일을 다음과 같이 만들고 싶습니다. (타임스탬프는 각 줄이 기록된 정확한 시간을 반영해야 합니다.)

[2020-04-15 16:26:10] log
[2020-04-15 16:26:11] error

현재 stderr은 필요한 날짜 로그 파일에 저장하는 대신 명령줄에 기록됩니다. 나는 그것을 위해 필요합니다:

  • 덮어쓰는 대신 로그 파일에 추가
  • tail -f스크립트가 실행되는 동안 실시간 로깅을 볼 수 있도록 비동기식으로 연결하세요.
  • [%Y-%m-%d %H:%M:%S]각 행에는 행이 기록된 실제 시간의 타임스탬프가 앞에 추가되어야 합니다.
  • 로그 파일의 이름은 현재 날짜를 따라 지정해야 합니다(필수 사항은 아님).

stderr을 제외하고 위의 bash 명령과 함께 작동하는 명령이 있습니다...너무 가깝습니다! 누구든지 작동시키는 방법을 알고 있습니까?

답변1

감사해요강철 드라이버위의 귀하의 의견과 관련하여. 현재 실행 중인 bash 라인은 다음과 같습니다.

node index.js 2>&1 | ts '[%Y-%m-%d %H:%M:%S]' >> $(date --utc +\%Y-\%m-\%d).log

관련 정보