Apa sintaks dari file konfigurasi LoggedFS?
Dokumentasi resmi hanya memiliki petunjuk penggunaan untuk loggedfs
perintah dan contoh file konfigurasi. Oke, ini XML, tapi apa saja kemungkinan tag dan atribut dan apa artinya?
Jawaban yang Diterima:
Saya membuka Config.cpp
, file yang bertanggung jawab untuk menguraikan konfigurasi. Konfigurasi contoh sebenarnya cukup bagus untuk menangkap opsi yang tersedia — jumlahnya tidak banyak
Ketika saya mengacu pada "contoh keluaran" di bawah, saya berbicara tentang baris ini (diambil secara acak dari halaman contoh):
17:29:35 (src/loggedfs.cpp:136) getattr /var/ {SUCCESS} [ pid = 8700 kded [kdeinit] uid = 1000 ]
Tag akarnya adalah <loggedFS>
. Ini memiliki dua atribut opsional:
- logEnabled adalah sebuah string — “true” artinya ia harus benar-benar menampilkan info log; hal lain menonaktifkan semua logging. Defaultnya adalah “true”, karena itulah inti dari program ini
- printProcessName adalah string — “true” berarti keluaran log akan menyertakan nama proses, yang lainnya tidak. Default ke "benar". Dalam contoh keluaran,
kded [kdeinit]
adalah nama proses
Satu-satunya node anak yang diperhatikan adalah <include>
dan <exclude>
. Dalam contoh mereka mengelompokkannya di bawah <includes>
dan <excludes>
blok, tetapi itu diabaikan oleh parser (seperti halnya node lain kecuali <include>
dan <exclude>
).
Tentu saja, <include>
aturan menyebabkannya menampilkan baris log jika cocok, sementara <exclude>
garis menyebabkan tidak. Jika terjadi tumpang tindih, <exclude>
menimpa <include>
. Biasanya Anda memerlukan setidaknya satu <include>
aturan untuk mencocokkan acara yang akan dicatat, tetapi pengecualian adalah jika ada 0 <include>
aturan — maka semua peristiwa dicatat, bahkan jika ada <exclude>
. yang cocok garis .
Keduanya <include>
dan <exclude>
ambil atribut yang sama:
- ekstensi adalah ekspresi reguler yang dicocokkan dengan jalur absolut file yang diakses/dimodifikasi/apa pun (
extension
adalah nama yang agak buruk, tapi saya rasa itu adalah penggunaan umum). Misalnya, jika Andatouch /mnt/loggedfs/some/file
, ekspresi reguler dalamextension
perlu (sebagian) cocok dengan/mnt/loggedfs/some/file
- uid adalah string yang berisi bilangan bulat atau
*
. Aturan hanya cocok dengan operasi yang diberikan jika pemilik proses yang menyebabkan operasi memiliki ID pengguna yang ditentukan (*
secara alami berarti semua ID pengguna cocok). Dalam contoh keluaran,1000
adalah uid - tindakan adalah jenis operasi spesifik yang dilakukan pada sistem file. Dalam contoh keluaran,
getattr
adalah tindakan. Tindakan yang mungkin dilakukan adalah:- akses
- chmod
- chown
- getattr
- tautan
- mkdir
- mkfifo
- mknod
- buka
- buka-baca saja
- buka-baca-baca
- buka-tulis saja
- baca
- bacadir
- tautan baca
- ganti nama
- rmdir
- statf
- symlink
- memotong
- batalkan tautan
- waktu
- peralatan
- tulis
- ganti nama adalah ekspresi reguler. Jika kode pengembalian dari operasi sistem file aktual yang dilakukan oleh LoggedFS adalah 0, ekspresi reguler dicocokkan dengan string
SUCCESS
. Kode pengembalian bukan nol menyebabkannya cocok denganFAILURE
. Itu adalah satu-satunya nilai yang mungkin, jadi kemungkinan besar Anda akan melakukan hardcodeSUCCESS
,FAILURE
, atau gunakan.*
jika Anda ingin keduanya. Pada contoh keluaran,SUCCESS
adalahretname
Berbeda dengan <loggedFS>
atribut, ini tidak memiliki default. Selain itu, meskipun parser akan mengenali atribut yang tidak diketahui dan kesalahan, parser tidak mendeteksi atribut yang hilang, jadi jika Anda lupa atribut, ia akan menggunakan memori yang tidak diinisialisasi.