Ana içeriğe geç

Uygulama Logları

Bir uygulama PM2 ile başlatıldıktan sonra logları kolayca görebilir ve yönetebilirsiniz. Log dosyaları $HOME/.pm2/logs klasöründe bulunur.

Log Görüntüleri

Uygulamanın logunu görüntülemek için pm2 logs komutunu kullanabilirsiniz.

-l --log [path]              hem çıkış hem de hata loglarının çıkacağı dosya yolunu belirtin
-o --output <path> çıkış log dosyasını belirtin
-e --error <path> hata log dosyasını belirtin
--time logları standart formatlanmış zaman damgasıyla önekleyin
--log-date-format <format> logları özel formatlanmış zaman damgasıyla önekleyin
--merge-logs aynı uygulama adıyla birden fazla işlem çalıştırıldığında dosyayı kimliğe göre ayırmayın

Kullanım: logs [seçenekler][id|isim|isim alanı]

log dosyasını akıtın. Varsayılan olarak tüm logları aktarır.

Seçenekler:

  • --json json log çıktısı
  • --format formatlı log çıktısı
  • --raw ham çıktı
  • --err yalnızca hata çıktısını gösterir
  • --out yalnızca standart çıktıyı gösterir
  • --lines son N satırı çıktılar, varsayılan olarak son 15 yerine
  • --timestamp [format] zaman damgalarını ekler (varsayılan format YYYY-MM-DD-HH:mm:ss)
  • --nostream log akışı başlatmadan logları yazdırır
  • --highlight [value] belirtilen değeri vurgular
  • -h, --help kullanım bilgisi çıktısını verir

Bazı önemli komutlar:

# Tüm uygulama loglarını gerçek zamanlı olarak görüntüle
pm2 logs

# Sadece `api` uygulaması loglarını görüntüle
pm2 logs api

# Yeni logları json formatında görüntüle
pm2 logs --json

# api log dosyasının 1000 satırını görüntüle
pm2 logs big-api --lines 1000
ipucu

CLI gösterge paneli ile logları da kontrol edebilirsiniz:

pm2 monit

Her uygulama satırı için bu meta veriler yazdırılacaktır:

{
"message": "echo\n", // `console.log` ile yazdırılan gerçek mesaj
"timestamp": "2017-02-06T14:51:38.896Z", // mesajın zaman damgası, formatlanabilir
"type": "out", // log türü, `err`, `out` veya `PM2` olabilir
"process_id": 0, // PM2 tarafından kullanılan işlem kimliği
"app_name": "one-echo" // uygulama adı
}
bilgi

pm2-logrotate modülü otomatik olarak log dosyalarını döndürür ve sınırlı disk alanı kullanarak tüm log dosyalarını saklar. Kurmak için:

pm2 install pm2-logrotate

pm2-logrotate hakkında daha fazla bilgi edinmek için buraya göz atın.

Logları Boşaltma

Bu, PM2 tarafından yönetilen mevcut uygulama loglarını boşaltır:

pm2 flush

pm2 flush <api> # <api> ile eşleşen ad/id'ye sahip uygulamanın loglarını temizle

Uygulama log seçenekleri

Bir uygulamayı başlatırken birçok seçeneği belirtebilirsiniz.

CLI

pm2 start app.js [SEÇENEKLER] komutunu çalıştırırken CLI'ye bu seçeneklerden herhangi birini geçebilirsiniz:

-l --log [path]              hem çıkış hem de hata loglarının çıkacağı dosya yolunu belirtin
-o --output <path> çıkış log dosyasını belirtin
-e --error <path> hata log dosyasını belirtin
--time logları standart formatlanmış zaman damgasıyla önekleyin
--log-date-format <format> logları özel formatlanmış zaman damgasıyla önekleyin
--merge-logs aynı uygulama adıyla birden fazla işlem çalıştırıldığında dosyayı kimliğe göre ayırmayın

Logları Tarih ile Otomatik Önekleme

Uygulama loglarını kolayca öneklemek için --time seçeneğini geçebilirsiniz:

$ pm2 start app.js --time
# Veya çalışan bir uygulama için
$ pm2 restart app --time

Konfigürasyon dosyası

Konfigürasyon dosyası aracılığıyla seçenekleri iletebilirsiniz:

AlanTürÖrnekAçıklama
error_file(string)hata dosyası yolu (varsayılan $HOME/.pm2/logs/<uygulama adı>-error-<pid>.log)
out_file(string)çıkış dosyası yolu (varsayılan $HOME/.pm2/logs/<uygulama adı>-out-<pid>.log)
log_file(string)hem çıkış hem de hata logları için dosya yolu (varsayılan olarak devre dışı)
pid_file(string)pid dosyası yolu (varsayılan $HOME/.pm2/pids/<uygulama adı>-<pid>.pid)
merge_logsbooleantruetrue olarak ayarlandığında log dosyalarını işlem kimliği ile ayırmaktan kaçının
log_date_format(string)"YYYY-MM-DD HH:mm Z"log tarihi formatı (log bölümüne bakın)
log_type(string)"json"log çıktı stilini belirtin, olası değer: 'json' (varsayılan olarak ham loglanır)

Log Suffix'ini Devre Dışı Bırakma

Yalnızca küme modundaki uygulamalar (node.js) için; Tüm kümelenmiş işlem örneklerinin loglarını aynı dosyaya yazmasını istiyorsanız --merge-logs veya merge_logs: true seçeneğini kullanabilirsiniz.

Log Yazmayı Devre Dışı Bırakma

Tüm logların diske yazılmasını devre dışı bırakmak için out_file ve error_file seçeneklerini /dev/null olarak ayarlayabilirsiniz.

module.exports = {
apps : [{
name: 'Business News Watcher',
script: 'app.js',
instances: 1,
out_file: "/dev/null",
error_file: "/dev/null",
cron_restart: '0 0 * * *'
[...]
}]
}

Logların çıktısı olarak /dev/null veya NULL değerini sağlayabilirsiniz (platformdan bağımsızdır, sabit bir dizedir).

Yerel bir logrotate Ayarlama

sudo pm2 logrotate -u user

Bu, /etc/logrotate.d/pm2-user dosyasına temel bir logrotate yapılandırması yazacaktır:

/home/user/.pm2/pm2.log /home/user/.pm2/logs/*.log {
rotate 12
weekly
missingok
notifempty
compress
delaycompress
create 0640 user user
}