mbahsomo-note/system-lof.md

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
}
```