Prvi problem je kada želiš da iskoristiš log datoteku i hoćeš da pogledaš odakle je to. Koristiš pretragu, ali možda postoje dva zapisa sa istom porukom. Kada bi svi pozivi bili u okviru jednog aspekta, lakše je baciti oko.
Drugi problem je kada programer zaboravi da doda log.warn(...) poziv u nekom novom kodu. Opet, kada bi svi pozivi za logovanje bili grupisani na jednom mestu, lakše se proveri da li je sve pokriveno. Na primer želiš da loguješ kontekst u kome se kreira neki objekat jer je to važno za tvoju aplikaciju, što naravno ne možeš iz konstruktora objekta zbog vidljivosti. Zato u coding style pravila se dodaje i ovo oko loga, ali programer može to da zaboravi. Sa aspektom, to je samo jedan pointcut (naravno, opet zavisi od implementacije da li je dopuštena vidljivost konteksta ili ne, ovo je samo ideja) koji će pokriti svaki postojeći i budući poziv...
Moguće da ne mislimo na isto, zar ne bi sistem za logovanje trebalo da se ponaša baš kao čitljiv trejs programa sa manjom granulacijom (tj. trejs samo u "bitnim tačkama koje smo unapred definisali i opisali")? Idealno nekim spoljnim parametrom uvećava se broj ovakvih tačaka (--verbose parametar).
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja