{"id":12306,"date":"2017-03-10T09:32:27","date_gmt":"2017-03-10T08:32:27","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=12306"},"modified":"2017-03-10T09:32:27","modified_gmt":"2017-03-10T08:32:27","slug":"logging-nelle-applicazioni-android-con-timber","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/logging-nelle-applicazioni-android-con-timber\/","title":{"rendered":"Logging nelle applicazioni Android con Timber"},"content":{"rendered":"<p><a href=\"https:\/\/github.com\/JakeWharton\/timber\" target=\"_blank\">Timber <\/a>\u00e8 una libreria che effettua\u00a0logging all&#8217;interno di\u00a0applicazioni. I programmatori Android sono abituati ad utilizzare a tale scopo la classe <a href=\"https:\/\/developer.android.com\/reference\/android\/util\/Log.html\" target=\"_blank\">Log <\/a>che dispone di una serie di metodi dedicati, ognuno, a pubblicare un log di livello diverso ( <em>e()<\/em> per livello errore, <em>d()<\/em> per debug,<em> i()<\/em> per info e via dicendo). Tali metodi, oltre a richiedere il messaggio da pubblicare, vogliono la specifica di un <em>tag<\/em>, un&#8217;etichetta che permetter\u00e0 di distinguere il messaggio pubblicato.<\/p>\n<p><a href=\"https:\/\/plus.google.com\/+JakeWharton\" target=\"_blank\">Jake Wharton<\/a> &#8211; autore o <em>contributor<\/em> di altri progetti di cui abbiamo parlato in\u00a0questo sito come <a href=\"http:\/\/www.devapp.it\/wordpress\/butterknife-field-and-method-binding-for-android-views\/\" target=\"_blank\">ButterKnife <\/a>&#8211; ha pensato di superare alcuni limiti dell&#8217;approccio offerto da\u00a0Log, creando questo\u00a0utilissimo strumento.<\/p>\n<p>Lo si pu\u00f2 installare con la seguente direttiva:<\/p>\n<pre class=\"lang:sh decode:true\">compile 'com.jakewharton.timber:timber:4.3.0'<\/pre>\n<p>ed invocare i suoi metodi, denominati alla stessa maniera di\u00a0quelli di Log, senza utilizzare un\u00a0tag visto che Timber lo assegna\u00a0in autonomia valorizzandolo come il nome della classe. Inoltre, altro aspetto molto utile, questa libreria pu\u00f2 essere utilizzata solo in fase di debug e non in produzione eseguendo questo semplice controllo prima di invocarne i metodi:<\/p>\n<pre class=\"lang:java decode:true \"> if (BuildConfig.DEBUG) {\r\n      Timber.plant(new DebugTree());\r\n    }<\/pre>\n<p>Con quello che offre Log e con le necessit\u00e0 che pongono le normali operazioni di logging, sembrerebbe inutile avere una libreria per tali attivit\u00e0 eppure provate a conoscere un p\u00f2 Timber e vi accorgerete di quanto pu\u00f2 essere utile.<\/p>\n<p>Alla prossima!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Timber \u00e8 una libreria che effettua\u00a0logging all&#8217;interno di\u00a0applicazioni. I programmatori Android sono abituati ad utilizzare a tale&#8230;<\/p>\n","protected":false},"author":561,"featured_media":12889,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1682],"tags":[1278,1725,1502,1724],"class_list":["post-12306","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","tag-android","tag-debugging","tag-log","tag-logging"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=12306"}],"version-history":[{"count":4,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12306\/revisions"}],"predecessor-version":[{"id":12891,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12306\/revisions\/12891"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/12889"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=12306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=12306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=12306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}