Ik doe zelf niets meer met Java sinds 2002, maar ik weet dat log4net (ook onderdeel van het Apache logging project) in een heel erg ver verleden gebaseerd was op log4j vandaar dat ik hem noemde. Welke logging framework je gebruik maakt in deze niet zoveel uit, als je maar logt en je later die logging kan terug lezen..
Als je logt naar een bestand, kun je daar dus gemakelijk een tail op zetten. Maar net als authenticatie, autorisatie, transacties en beveiliging behoort logging eigenlijk onderdeel te zijn van je development methodiek. Als je dit namelijk altijd doet wordt het onderdeel van je routine en vergeet je het dus ook minder snel. Kleine demo applicaties worden misschien initieel wat groter en deels complexer dan zonder dergelijke zaken. Aan de andere kant komt het ook regelmatig voor dat een kleine tool steeds groter wordt. Vaak is er dan geen tijd om de code opnieuw te schrijven, dus worden dergelijke onderdelen er dan tussen gepropt..
In principe hoort elke onomkeerbare actie in de logging terug te komen inclusief belangrijke meta data zoals klantnummer, ordernummer of de medewerker/gebruiker welke de actie uitvoert. De meeste foutmeldingen zoals die door het .NET framework voorkomen zijn eigenlijk nutteloos. Het verteld alleen wat er is fout gegaan, maar vrijwel nooit waarom. Je hebt niets aan een log regel als "error on saving state for order". Een logregel als "error on saving state '1' for order '62527'" is dan meer hulpzaam. Het bied als laatste redmiddel de mogelijkheid om de data handmatig aan te passen in de data storage. Hoewel niet verstandig omdat bij het veranderen van een status vaak meer gedaan moet worden dan alleen het zetten van een waarde..
offtopic:
Ik vermoed dat de TS nog niet zo heel erg lang bezig is met programmeren en dan mis je gewoon een hoop kennis en ervaring. Ik wou dat ik 15 jaar alles wist wat ik nu weet. Echter wordt bij informatica op scholen nog steeds bijzonder weinig aandacht besteed aan deze zaken, maar ook het voorkomen van SQL injection lijkt niet (overal) op de agenda te staan. En dat is jammer, want het zijn belangrijke concepten welke het bedrijfsleven eigenlijk gewoon verwacht van een developer..
Het gebruik van query parameters is niet moeilijk en de code wordt er niet veel groter of xomplexer van. Toch zie ik in alle lesboeken constructies staan waar queries worden samen gesteld ("select * from gebruikers where naam='" + naam + "'"). Daardoor leren studenten het al direct verkeerd. De meeste database gebruiken een : of een @ om een parameter (variabele) te specificeren. Als je eenmaal iets verkeerd hebt aangeleerd is het heel lastig om dat weer kwijt te raken..
If it isn't broken, fix it until it is..