<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Enrico franchi:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">logger.debug('dump: %s', JSONDumper(something))</blockquote></div><br><div><div class="gmail_signature"><div>yep, vuol dire scrivere però struttura OOP per il logging, non che ci sia nulla di male.</div><div><br></div><div>non sarebbe male se invece si andasse in qualcosa tipo</div><div><br></div><div>logger.debug('dump: %s', (<span style="color:rgb(0,0,0);font-size:12.8000001907349px">json.dumps, (self.obj),</span>))</div><div>[non funziona]</div><div><br></div><div>dove cioè il modulo logging inglobasse la logica lazy ad esempio con la classica tupla (f, *args, **kwargs) da passare come un parametro</div><div><br></div><div>oppure</div><div><br></div><div>logger.debug('dump: %s', lambda : <span style="color:rgb(0,0,0);font-size:12.8000001907349px">json.dumps(self.obj)</span>)<br></div><div>[non funziona]<br></div><div><br></div><div>dove logging accetta callable methods come parametri</div><div><br></div><div><br></div><div>Enrico franchi:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">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. </blockquote></div><div><br></div><div>Si ma grosso modo sono andati verso il multithread, implementazioni più leggere, implementazioni disparate. L'utilizzo resta lo stesso a livello sviluppatore, e dietro puoi scegliere varie implementazioni javiste.</div><div><br></div><div>Enrico Bianchi:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Da quello che ho notato, dalla comparsa di log4j, tutte le librerie per il logging tendono ad imitarne il comportamento, anche la libreria di logging presente nella libreria standard di Java (con qualche modifica). Non ho mai capito il perche`, presumo semplicemente che sia legato alla diffusione di log4j frammista alla diffusione di Java...</blockquote></div><div><br></div><div>Secondo me il problema di log4j è la licenza, per questo sono nate delle specifiche molto simili... (non ho nulla contro la licenza apache2 - solo che certe situazioni scappano da tutto ciò che è open)</div><div><br></div><div><br></div><div>Marco Beri:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Concordo. Infatti io di solito se voglio leggere un dict e proprio mi serve averlo nel log, ci scrivo una roba così "\t".join("%s=%s" % (k, v) for k, v in data.items())</blockquote></div><div><br></div><div>questo però è il classico esempio da mettere lazy o sotto <span style="color:rgb(0,0,0);font-size:12.8000001907349px">l</span><span style="color:rgb(0,0,0);font-size:12.8000001907349px;background-color:rgba(255,255,255,0)"><span style="font-style:inherit;font-variant:inherit;margin:0px;padding:0px;border:0px;vertical-align:baseline">ogger</span><span style="font-style:inherit;font-variant:inherit;margin:0px;padding:0px;border:0px;vertical-align:baseline">.</span></span><font size="2" style="color:rgb(0,0,0)"><span style="background-color:rgba(255,255,255,0)">isEnabledFor</span></font><span style="font-style:inherit;font-variant:inherit;color:rgb(0,0,0);font-size:12.8000001907349px;margin:0px;padding:0px;border:0px;vertical-align:baseline">(</span><span style="font-style:inherit;font-variant:inherit;color:rgb(0,0,0);font-size:12.8000001907349px;margin:0px;padding:0px;border:0px;vertical-align:baseline">logging</span><span style="font-style:inherit;font-variant:inherit;color:rgb(0,0,0);font-size:12.8000001907349px;margin:0px;padding:0px;border:0px;vertical-align:baseline">.</span><span style="font-style:inherit;font-variant:inherit;color:rgb(0,0,0);font-size:12.8000001907349px;margin:0px;padding:0px;border:0px;vertical-align:baseline">DEBUG</span><span style="font-style:inherit;font-variant:inherit;color:rgb(0,0,0);font-size:12.8000001907349px;margin:0px;padding:0px;border:0px;vertical-align:baseline">) </span></div><div><span style="font-style:inherit;font-variant:inherit;color:rgb(0,0,0);font-size:12.8000001907349px;margin:0px;padding:0px;border:0px;vertical-align:baseline"><br></span></div><div><span style="font-style:inherit;font-variant:inherit;color:rgb(0,0,0);font-size:12.8000001907349px;margin:0px;padding:0px;border:0px;vertical-align:baseline">tipo devi scrivere un lazy_join.</span></div><div><span style="font-style:inherit;font-variant:inherit;color:rgb(0,0,0);font-size:12.8000001907349px;margin:0px;padding:0px;border:0px;vertical-align:baseline"><br></span></div><div><span style="font-style:inherit;font-variant:inherit;color:rgb(0,0,0);font-size:12.8000001907349px;margin:0px;padding:0px;border:0px;vertical-align:baseline">sarebbe fico poter scrivere</span></div><div><span style="font-style:inherit;font-variant:inherit;color:rgb(0,0,0);font-size:12.8000001907349px;margin:0px;padding:0px;border:0px;vertical-align:baseline"><br></span></div><div><span style="font-style:inherit;font-variant:inherit;color:rgb(0,0,0);font-size:12.8000001907349px;margin:0px;padding:0px;border:0px;vertical-align:baseline"><span style="color:rgb(34,34,34);font-size:small">logger.debug('dump: %s', (lambda x:  </span><span style="font-size:small;color:rgb(34,34,34)">"\t".join("%s=%s" % (k, v) for k, v in x.items(), (data,)))</span><br></span></div><div>[non funziona]<br></div><div><br></div><div><br></div><div><span style="font-style:inherit;font-variant:inherit;color:rgb(0,0,0);font-size:12.8000001907349px;margin:0px;padding:0px;border:0px;vertical-align:baseline"><br></span></div></div></div>
</div></div>