2013-03-05 4 views
17

내 노드 응용 프로그램을 실행하려면 forever을 사용하고 있습니다. 영원히 시작할 때 로그를 쓸 위치를 지정합니다. 또한 로그에 추가하도록 지정합니다. 여기서 문제는 내 로그가 몇 개월 동안 통제를 벗어날 수 있다는 것입니다.NodeJS/Forever 보관 로그

일정 기간에 로그를 보관/롤하는 방법이 있습니다. 즉, 매일 로그 파일에있는 파일을 다른 파일 (예 : server-2013-3-5.log)로 옮기거나 보관합니다. 그렇게하면 필요에 따라 이전 로그 파일을 삭제하거나 삭제할 수 있습니다.

저는 로거 용 Winston을 사용하기 시작했습니다. 도움이 될만한 점이 없었습니다.

아이디어가 있으십니까?

+0

어떻게 해결 했습니까? – JustGoscha

답변

34

영원히 그 자체는 로그 회전을 지원하지 않으며 로그 회전은 여전히 ​​Winston의 경우 pending feature request입니다.

logrotate은 대부분의 Linux 배포판에 포함되어 있으며 시스템 로그 파일을 순환시키는 데 사용되며 Apache와 같은 다른 소프트웨어에서 사용됩니다. more logrotate examples를 참조

/etc/logrotate.d/

/path/to/server.log { 
    daily   # how often to rotate 
    rotate 10  # max num of log files to keep 
    missingok  # don't panic if the log file doesn't exist 
    notifempty # ignore empty files 
    compress  # compress rotated log file with gzip 
    sharedscripts # postrotate script (if any) will be run only once at the end, not once for each rotated log 
    copytruncate # needed for forever to work properly 
    dateext  # adds date to filename 
    dateformat %Y-%m-%d. 
} 

에 파일을 추가합니다.

+2

Winston에서 로그 회전이 가능합니다. – JCM

+2

'sharedscripts' : "sharedscripts는 이전 로그가 압축 된 후에 한 번만 실행됩니다.), 회전 된 각 로그마다 한 번이 아닙니다. " [man logrotate] (http://linuxcommand.org/man_pages/logrotate8.html) –

+0

@JCM Winston에서이 새로운 기능을 사용하려면 영원히 어떻게 설정하나요? 명령 줄 사용에서 프로그래밍 방식의 사용으로 전환해야합니까? – sheldonh

관련 문제