<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2015-06-22 23:28 GMT+01:00 Enrico Bianchi <span dir="ltr"><<a href="mailto:enrico.bianchi@ymail.com" target="_blank">enrico.bianchi@ymail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Giusto perche` si e` detto pochi minuti fa' di aprire qualche discussione, che ne pensate di questa? Ovvero, che ne pensate dell'usare logging al posto di print per debuggare (parte) del codice?<br>
<a href="http://inventwithpython.com/blog/2012/04/06/stop-using-print-for-debugging-a-5-minute-quickstart-guide-to-pythons-logging-module/" rel="noreferrer" target="_blank">http://inventwithpython.com/blog/2012/04/06/stop-using-print-for-debugging-a-5-minute-quickstart-guide-to-pythons-logging-module/</a></blockquote><div><br></div><div>Trovo che secondo me l'autore sia confuso sul concetto di "debug", ovvero, dovrebbe specificare all'inizio che "per tutti quelli che pensano che print sia uno strumento utile di debug (e per tutti quelli che non lo pensano nel caso generale ma in casi specifici vogliono usarlo) ... blah blah blah.</div><div><br></div><div>Per il resto ha essenzialmente ragione: logging ti da flessibilita' sensibile e funziona bene in produzione. Print, di per se, no. Non e' chiaro dove sia connesso lo stdout su un generico sistema in produzione, se devi gestire log-rotation et similia te lo devi fare a mano, etc etc etc etc.</div><div><br></div><div>Quindi si: se vuoi usare una linea di output per "fare debugging", in generale logging e' meglio. Se e' qualcosa che tanto va a scomparire prima del commit (e quindi e' effettivamente "vero" debugging -- tracciare l'applicazione in produzione e' una cosa complementare ma leggermente diversa) *e* sai dove e' stdout etc etc etc allora e' abbastanza ok. In particolare a me piace la proprieta' che nel codice di produzione non ho tipicamente delle print in giro, quindi e' molto facile grepparle prima di fare commit. Viceversa finisce che la linea di log inserita non per fare normale tracing ma per debuggare uno specifico problema -- che ci si auspica scompaia prima di committare -- rimanga li ad inquinare il tutto.</div><div><br></div><div>Poi detto fra di noi: logging sembra essere stato pensato da Javisti. Io temo che semplicemente a suo tempo sia stata presa pesante ispirazione da logging di Java e che non sia stata concepita un'interfaccia piu' Pythonica del tutto. Tutta la separazione fra handler, formatter e combriccola cantante, sebbene cosa in se e per se buona e giusta fa veramente pensare ad un coso Java. Poi in Java hanno elaborato su logging con librerie crescentemente piu' elaborate e comode e noi siamo rimasti indietro -- nel senso che non conosco librerie alternative che siano largamente usate. </div><div><br></div><div> </div></div>-- <br><div class="gmail_signature"> .<br>..: -enrico-</div>
</div></div>