2013-03-05 5 views
17

Używam forever do uruchamiania aplikacji mojego węzła. Kiedy zaczynam na zawsze, określam, gdzie pisać dzienniki. Podaję również, aby dołączyć do dziennika. Problem polega na tym, że mój dziennik wyrośnie spod kontroli w ciągu miesięcy.Dzienniki archiwum NodeJS/Forever

Czy istnieje sposób archiwizowania/zwijania dzienników w interwale, tj. Codziennie rolka/archiwum, co znajduje się w pliku dziennika do innego pliku (np. Serwer-2013-3-5.log). W ten sposób mogę usunąć/przenieść stare pliki dziennika w razie potrzeby.

Właśnie zacząłem korzystać z Winstona dla mojego loggera i nie natknąłem się na nic, co mogłoby pomóc.

Wszelkie pomysły?

+0

Jak udało ci się rozwiązać go na końcu? – JustGoscha

Odpowiedz

34

forever sama nie obsługuje rotacji logu, a rotacja logu nadal jest dla Winstona wartością pending feature request.

Można użyć wartości logrotate, która jest zawarta w większości dystrybucji systemu Linux i służy do obracania plików dzienników systemowych, a także do korzystania z innych programów, takich jak Apache.

Dodaj plik do /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. 
} 

Zobacz more logrotate examples.

+2

Rotacja logów jest teraz możliwa dzięki Winstonowi: https://github.com/flatiron/winston/pull/205 – JCM

+2

'sharedscripts':" Sharedscripts oznacza, że ​​skrypt postrotate zostanie uruchomiony tylko raz (po skompresowaniu starych logów)), nie raz dla każdego dziennika, który jest obrócony. " [man logrotate] (http://linuxcommand.org/man_pages/logrotate8.html) –

+0

@JCM Jak jednak skonfigurować na zawsze korzystanie z tej nowej funkcji w Winston? Czy muszę przestawić się z użycia wiersza poleceń na programowe korzystanie z niego na zawsze? – sheldonh