Saya memiliki beberapa aplikasi dan skrip yang ingin saya redirect output ke file kustom.
Saya meluncurkan aplikasi tersebut menggunakan
command | logger -t TAG
Saya ingin memfilter pesan-pesan ini berdasarkan tag mereka dan mengarahkan mereka ke file yang berbeda. Saya tidak ingin menggunakan pengalihan bash karena aplikasi tersebut terutama proses yang berjalan lama dan perlu rotasi log yang tepat.
Saya telah mencoba menambahkan filter khusus di /etc/rsyslog.d/60-myfilter.conf;
if $syslogtag == 'giomanager' then /var/log/giomanager.log
Apa yang saya lakukan salah? Apa cara yang tepat untuk memfilter berdasarkan tag atau apakah ada opsi yang lebih baik untuk mendapatkan hasil yang serupa?
/var/log/giomanager.log
/var/log/giomanager.log
tetapi masih ditulis ke / var / log / syslog. Apakah Anda punya ide mengapa ini terjadi dan bagaimana cara mencegahnya?Jadi saya akhirnya menemukan solusi untuk masalah saya.
Terima kasih banyak kepada @lain karena telah memimpin jalan saya.
Solusi seperti yang dinyatakan sebelumnya adalah dengan memasukkan ':' dalam nama tag. Juga, dan ini sangat penting, nama file harus sebelum
50-default.conf
dalam urutan abjad.Untuk melanjutkan, masukkan yang berikut ini
30-giomanager.conf
:Perhatikan bahwa file tersebut
/var/log/giomanager.log
harus dapat ditulis oleh pengguna 'syslog'.sumber
startswith
alih-alihisequal
jika, misalnya, tag berisi PID. Atauregex
untuk pertandingan kompleks.