124 lines
1.9 KiB
Markdown
124 lines
1.9 KiB
Markdown
Untuk menambahkan **error log** pada service `systemd`, gunakan directive berikut di bagian `[Service]`:
|
|
|
|
* `StandardOutput=` → log output normal
|
|
* `StandardError=` → log error
|
|
* arahkan ke file dengan `append:` atau `file:`
|
|
|
|
Contoh lengkap:
|
|
|
|
```
|
|
[Unit]
|
|
Description=Aplikasi Pasar
|
|
|
|
[Service]
|
|
Type=simple
|
|
Restart=always
|
|
RestartSec=5s
|
|
User=root
|
|
WorkingDirectory=/home/api/
|
|
ExecStart=/home/api/delamonganpasarapi
|
|
|
|
# log output dan error ke file
|
|
StandardOutput=append:/var/log/delamonganpasarapi.log
|
|
StandardError=append:/var/log/delamonganpasarapi-error.log
|
|
|
|
# optional: buat identifier di journalctl
|
|
SyslogIdentifier=delamonganpasarapi
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
---
|
|
|
|
## Buat file log dan set permission
|
|
|
|
Jalankan:
|
|
|
|
```bash
|
|
sudo touch /var/log/delamonganpasarapi.log
|
|
sudo touch /var/log/delamonganpasarapi-error.log
|
|
sudo chmod 644 /var/log/delamonganpasarapi*.log
|
|
```
|
|
|
|
Atau jika service jalan sebagai user tertentu:
|
|
|
|
```bash
|
|
sudo chown root:root /var/log/delamonganpasarapi*.log
|
|
```
|
|
|
|
---
|
|
|
|
## Reload dan restart service
|
|
|
|
Setelah edit file service:
|
|
|
|
```bash
|
|
sudo systemctl daemon-reexec
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl restart delamonganpasarapi
|
|
```
|
|
|
|
---
|
|
|
|
## Cara melihat log
|
|
|
|
### 1. Dari file log
|
|
|
|
```
|
|
tail -f /var/log/delamonganpasarapi.log
|
|
tail -f /var/log/delamonganpasarapi-error.log
|
|
```
|
|
|
|
### 2. Dari journalctl (recommended)
|
|
|
|
```
|
|
journalctl -u delamonganpasarapi -f
|
|
```
|
|
|
|
atau
|
|
|
|
```
|
|
journalctl -u delamonganpasarapi -n 100
|
|
```
|
|
|
|
---
|
|
|
|
## Best practice (recommended)
|
|
|
|
Sebenarnya systemd sudah menyimpan log otomatis, jadi cukup gunakan:
|
|
|
|
```
|
|
journalctl -u delamonganpasarapi
|
|
```
|
|
|
|
File log manual hanya diperlukan jika:
|
|
|
|
* ingin integrasi dengan logrotate
|
|
* ingin file log terpisah
|
|
* ingin dibaca aplikasi lain
|
|
|
|
---
|
|
|
|
## Bonus: log rotation otomatis
|
|
|
|
Buat file:
|
|
|
|
```
|
|
sudo nano /etc/logrotate.d/delamonganpasarapi
|
|
```
|
|
|
|
isi:
|
|
|
|
```
|
|
/var/log/delamonganpasarapi*.log {
|
|
daily
|
|
rotate 14
|
|
compress
|
|
missingok
|
|
notifempty
|
|
copytruncate
|
|
}
|
|
```
|
|
|