Na jaké úrovni aplikace logovat operace uživatele? rubrika: Návrh
Rád bych se zeptal na vaše názory ohledně toho,
na jaké úrovni aplikace je vhodné či nevhodné logovat operace / události, které provádí její uživatelé?
Nemám Tím na mysli události či chyby spojené s během aplikace.
Jedná se mi např. o to, když nějaký uživatel provede vytvoření nové entity, editaci, smazání apod.
Neodkáži se rozhodnout mezi dvěma úrovněmi:
1. Model
Výhody:
- Neuteče žádná operace, jelikož je to nejnižší úroveň, kde se operace provádí
Nevýhody:
- Závislost modelu na logovací službě, která spíše souvisí s interakcí uživatele, než "low level core jádrem"
2. Controler
Výhody:
- Loguji skutečné interakce až po jejich dokončení
- Přijde mi logičtější, že má controler závislost na logovací službu než Model (Připomínám, že se nejedná o logování systémových chyb apod.)
Nevýhody:
- Programátor musí myslet na logování u všech akcí, komponent apod.
Jaké jsou vaše postřehy, zkušenosti, či další (ne)výhody?
Případně úplně jiný úhel pohledu?
Ono sa na to pozri takto a vyjasni si co chces logovat,
v kontroleroch to su akcie pouzivatela (co stlacil, kam siel atd...),
v bussines logike logujes co sa stalo na zaklade akcii pouzivatela.
Obe vies vyriesit (ak mas rozumny frameowrk a ak nechces specialne log spravy) autoamtciky bez zasahu kodu. V kontroleroch bud pomocou midllweru, alebo pomocou ActionFiltra. V bussines logike (ak pouzivas IoC a rozhrania) tak pomocou interceptoru/dynamickych proxy. Obe rienia su tak na 10-20 riadkov kodu a pokryju celu aplikaciu a to aj do buducna, len sa potom treba pohrat a odfiltrovat citlive data ako hesla a kreditky.
Komentáře
- Taco : Perfektní definice: "v kontroleroch to su akcie pouzivatela (co stlacil, kam siel atd...), v bussines logike logujes co sa stalo na zaklade akcii pouzivatela." ! — 21.12.2018
- ajda2 : Díky! Tohle dává smysl, především Tvá definice, jak píše @Taco — 28.12.2018
Pro zobrazení všech 4 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře