diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/StandardLocationListener.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/StandardLocationListener.java
index dbbbc30..efe5d3a 100644
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/StandardLocationListener.java
+++ b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/StandardLocationListener.java
@@ -4,6 +4,8 @@ import android.location.Location;
 import android.location.LocationListener;
 import android.os.Bundle;
 import android.util.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -12,12 +14,13 @@ import java.util.List;
  * Created by tpolgrabia on 28.08.16.
  */
 public class StandardLocationListener implements LocationListener {
+    private static final Logger lg = LoggerFactory.getLogger(StandardLocationListener.class);
     private static final String CLASS_TAG = StandardLocationListener.class.getSimpleName();
     private List<StandardLocationListenerCallback> locationChangedCallbacks = new ArrayList<>();
 
     @Override
     public void onLocationChanged(Location location) {
-        Log.i(CLASS_TAG, "Location provider changed: " + location);
+        lg.info("Location provider changed: {}", location);
         for (StandardLocationListenerCallback callback : locationChangedCallbacks) {
             callback.callback(location);
         }
@@ -25,17 +28,17 @@ public class StandardLocationListener implements LocationListener {
 
     @Override
     public void onStatusChanged(String provider, int status, Bundle extras) {
-        // Log.i(CLASS_TAG, "Location provider status changed")
+        lg.debug("Location provider status changed");
     }
 
     @Override
     public void onProviderEnabled(String provider) {
-        Log.i(CLASS_TAG, "Provider " + provider + " enabled");
+        lg.info("Provider {} enabled", provider);
     }
 
     @Override
     public void onProviderDisabled(String provider) {
-        Log.i(CLASS_TAG, "Provider " + provider + " disabled");
+        lg.info("Provider {} disabled", provider);
     }
 
     public void addCallback(StandardLocationListenerCallback callback) {
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/LocationUtils.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/LocationUtils.java
index 12b6b48..ee5e847 100644
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/LocationUtils.java
+++ b/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/LocationUtils.java
@@ -2,7 +2,6 @@ package pl.tpolgrabia.urbanexplorer.utils;
 
 import android.content.Context;
 import android.location.LocationManager;
-import android.util.Log;
 
 /**
  * Created by tpolgrabia on 28.08.16.
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/NetUtils.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/NetUtils.java
index 8f737a8..63bc801 100644
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/NetUtils.java
+++ b/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/NetUtils.java
@@ -3,8 +3,9 @@ package pl.tpolgrabia.urbanexplorer.utils;
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.preference.PreferenceManager;
-import android.util.Log;
 import com.androidquery.AQuery;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import pl.tpolgrabia.urbanexplorer.AppConstants;
 
 import java.net.Authenticator;
@@ -14,15 +15,15 @@ import java.net.PasswordAuthentication;
  * Created by Tomasz Półgrabia <tomasz.polgrabia@unicredit.eu> (c310702) on 15.09.2016.
  */
 public class NetUtils {
-    private static final String CLASS_TAG = NetUtils.class.getSimpleName();
+    private static final Logger lg = LoggerFactory.getLogger(NetUtils.class);
 
     public static AQuery createProxyAQueryInstance(Context ctx) {
         final AQuery aq = new AQuery(ctx);
         try {
-            Log.v(CLASS_TAG, "Creating aquery proxy instance");
+            lg.trace("Creating aquery proxy instance");
             SharedPreferences sharedPrefs = getDefaultSharedPreferences(ctx);
             boolean enabled = isProxyEnabled(ctx);
-            Log.v(CLASS_TAG, "Proxy is enabled: " + enabled);
+            lg.trace("Proxy is enabled: {}", enabled);
             if (!enabled) {
                 return aq;
             }
@@ -33,26 +34,27 @@ public class NetUtils {
             String httpProxyPort = sharedPrefs.getString(AppConstants.PREF_HTTP_PROXY_PORT_KEY,
                     AppConstants.DEF_HTTP_PROXY_PORT);
 
-            Log.v(CLASS_TAG, "Proxy is enabled, host: " + httpProxyHost + ", port: " + httpProxyPort);
+            lg.trace("Proxy is enabled, host: {}, port: {}", httpProxyHost, httpProxyPort);
 
 
             if (httpProxyHost == null) {
                 return aq;
             }
 
-            Log.v(CLASS_TAG, "Proxy host: " + httpProxyHost + ", proxy port: " + httpProxyPort);
+            lg.trace("Proxy host: {}, proxy port: {}",
+                httpProxyHost, httpProxyPort);
             aq.proxy(httpProxyHost, Integer.parseInt(httpProxyPort));
         } catch (NumberFormatException e) {
-            Log.w(CLASS_TAG, "Invalid proxy auth number format", e);
+            lg.warn("Invalid proxy auth number format", e);
         }
 
         return aq;
     }
 
     public static void setGlobalProxyAuth(Context ctx) {
-        Log.v(CLASS_TAG, "Setting proxy auth");
+        lg.trace("Setting proxy auth");
         if (isProxyEnabled(ctx)) {
-            Log.v(CLASS_TAG, "Setting custom proxy auth");
+            lg.trace("Setting custom proxy auth");
             SharedPreferences sharedPrefs = getDefaultSharedPreferences(ctx);
             final String httpProxyUser = sharedPrefs.getString(AppConstants.PREF_HTTP_PROXY_USER_KEY,
                     AppConstants.DEF_HTTP_PROXY_USER);
@@ -63,7 +65,7 @@ public class NetUtils {
             setGlobalProxyAuth(httpProxyUser, httpProxyPass);
         } else {
             Authenticator.setDefault(null);
-            Log.v(CLASS_TAG, "Setting empty proxy auth");
+            lg.trace("Setting empty proxy auth");
         }
     }
 
@@ -72,11 +74,11 @@ public class NetUtils {
     }
 
     private static void setGlobalProxyAuth(final String httpProxyUser, final String httpProxyPass) {
-        Log.v(CLASS_TAG, "Proxy user: " + httpProxyUser + ", proxy pass: " + httpProxyPass);
+        lg.trace("Proxy user: {}, proxy pass {}", httpProxyUser);
         Authenticator.setDefault(new Authenticator() {
             @Override
             protected PasswordAuthentication getPasswordAuthentication() {
-                Log.v(CLASS_TAG, "Proxy auth try");
+                lg.trace("Proxy auth try");
                 return new PasswordAuthentication(httpProxyUser,httpProxyPass.toCharArray());
             }
         });
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/PanoramioUtils.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/PanoramioUtils.java
index c9fb795..01122d4 100644
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/PanoramioUtils.java
+++ b/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/PanoramioUtils.java
@@ -1,13 +1,14 @@
 package pl.tpolgrabia.urbanexplorer.utils;
 
 import android.content.Context;
-import android.util.Log;
 import com.androidquery.AQuery;
 import com.androidquery.callback.AjaxCallback;
 import com.androidquery.callback.AjaxStatus;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import pl.tpolgrabia.urbanexplorer.callbacks.PanoramioResponseCallback;
 import pl.tpolgrabia.urbanexplorer.callbacks.PanoramioResponseStatus;
 import pl.tpolgrabia.urbanexplorer.dto.panoramio.PanoramioImageInfo;
@@ -24,6 +25,7 @@ import java.util.List;
  */
 public class PanoramioUtils {
 
+    private static final Logger lg = LoggerFactory.getLogger(PanoramioUtils.class);
     private static final String CLASS_TAG = PanoramioUtils.class.getSimpleName();
 
     private static final String LOCATIONS_LIST_IMAGE_SIZE = "medium";
@@ -50,15 +52,15 @@ public class PanoramioUtils {
             "&size=" + LOCATIONS_LIST_IMAGE_SIZE +
             "&order=" + LOCATIONS_ORDER +
             "&mapfilter=true";
-        Log.d(CLASS_TAG, "Query: " + aqQuery);
+        lg.debug("Query URL: {}", aqQuery);
         aq.ajax(aqQuery,
             JSONObject.class,
             new AjaxCallback<JSONObject>() {
                 @Override
                 public void callback(String url, JSONObject object, AjaxStatus status) {
                     try {
-                        Log.d(CLASS_TAG, "Query code: " + status.getCode()
-                            + ", error: " + status.getError() + ", message: " + status.getMessage());
+                        lg.debug("Query code: {}, error: {}, message: {}, object: {}",
+                            status.getCode(), status.getError(), status.getMessage(), object);
                         if (object == null) {
                             return;
                         }
@@ -67,7 +69,7 @@ public class PanoramioUtils {
                         try {
                             photosInfos = PanoramioUtils.fetchPanoramioImagesFromResponse(object.getJSONArray("photos"));
                         } catch (ParseException e) {
-                            Log.w(CLASS_TAG, "Parse exception", e);
+                            lg.warn("Parse exception", e);
                             photosInfos = new ArrayList<>();
                         }
 
@@ -77,7 +79,7 @@ public class PanoramioUtils {
                             photosCount);
 
                     } catch (JSONException e) {
-                        Log.w(CLASS_TAG, "Json not supported format", e);
+                        lg.warn("Json not supported format", e);
                     }
                 }
             });
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/WikiUtils.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/WikiUtils.java
index 94ce226..dbb802b 100644
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/WikiUtils.java
+++ b/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/WikiUtils.java
@@ -1,7 +1,6 @@
 package pl.tpolgrabia.urbanexplorer.utils;
 
 import android.content.Context;
-import android.util.Log;
 import android.widget.Toast;
 import com.androidquery.AQuery;
 import com.androidquery.callback.AjaxCallback;
@@ -10,6 +9,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import pl.tpolgrabia.urbanexplorer.callbacks.WikiResponseCallback;
 import pl.tpolgrabia.urbanexplorer.callbacks.WikiStatus;
 import pl.tpolgrabia.urbanexplorer.dto.wiki.app.WikiAppObject;
@@ -27,6 +28,7 @@ import java.util.*;
  * Created by tpolgrabia on 28.08.16.
  */
 public class WikiUtils {
+    private static final Logger lg = LoggerFactory.getLogger(WikiUtils.class);
     private static final String CLASS_TAG = WikiUtils.class.getSimpleName();
     private static final String WIKI_FORMAT = "json";
     private static final long WIKI_MIN_RADIUS = 10L;
@@ -68,7 +70,7 @@ public class WikiUtils {
                             try {
                                 callback.callback(WikiStatus.SUCCESS, fetchWikiResponse(object));
                             } catch (JSONException e) {
-                                Log.e(CLASS_TAG, "JSon error: " + object.toString(), e);
+                                lg.error("JSon error: {}", object, e);
                             }
                         } else {
                             callback.callback(WikiStatus.NETWORK_ERROR, null);
@@ -162,10 +164,7 @@ public class WikiUtils {
                                                   Long limit,
                                                   final WikiGeoResponseCallback callback) {
 
-        Log.d(CLASS_TAG, "Latitude: " + latitude +
-            ", longitude: " + longitude +
-            ", radius: " + radius +
-            ", limit: " + limit);
+        lg.debug("Latitude: {}, longitude: {}, radius: {}, limit: {}", latitude, longitude, radius, limit);
 
         if (radius == null) {
             radius = WIKI_STD_RADIUS;
@@ -185,19 +184,19 @@ public class WikiUtils {
             "&format=json", JSONObject.class, new AjaxCallback<JSONObject>() {
             @Override
             public void callback(String url, JSONObject object, AjaxStatus status) {
-                Log.v(CLASS_TAG, "Finished waiting for " + url
-                    + " with status " + status.getCode() + ":" + status.getMessage()
-                    + " and response:  " + object);
+                lg.trace("Finished waiting for {} with status {}:{} and response: {}",
+                    url, status.getCode(), status.getMessage(), object);
+
                 if (status.getCode() == 200) {
                     try {
                         callback.callback(WikiStatus.SUCCESS, fetchWikiGeoResponse(object));
                     } catch (Throwable t) {
-                        Log.e(CLASS_TAG, "General error during fetching", t);
+                        lg.error("General error during fetching", t);
                         callback.callback(WikiStatus.GENERAL_ERROR, null);
                     }
                 } else {
-                    Log.e(CLASS_TAG, "Couldn't fetch wiki metadata " +  object
-                        + ", status: " + status.getCode() + ": " + status.getMessage() + " from url: " + url);
+                    lg.error("Couldn't fetch wiki metadata {}, status: {}:{} from url: {}",
+                        object, status.getCode(), status.getMessage(), url);
                     callback.callback(WikiStatus.NETWORK_ERROR, null);
                 }
                 super.callback(url, object, status);
@@ -243,16 +242,14 @@ public class WikiUtils {
                                     final Long limit,
                                     final WikiAppResponseCallback callback) {
 
-        Log.d(CLASS_TAG, "Latitude: " + latitude
-        + ", longitude: " + longitude
-        + ", radius: " + radius
-        + ", limit: " + limit);
+        lg.debug("Latitude: {}, longitude: {}, radius: {}, limit: {}",
+            latitude, longitude, radius, limit);
 
         fetchGeoSearchWikiMetadata(ctx, latitude, longitude, radius, limit, new WikiGeoResponseCallback() {
             @Override
             public void callback(WikiStatus status, WikiGeoResponse response) {
 
-                Log.v(CLASS_TAG, "Fetching finished with status: " + status + " and values: " + response);
+                lg.trace("Fetching finished with status: {} and values: {}", status, response);
 
                 if (status != WikiStatus.SUCCESS) {
                     Toast.makeText(ctx, "Sorry, couldn't fetch wiki metadata", Toast.LENGTH_SHORT).show();
@@ -330,7 +327,7 @@ public class WikiUtils {
                     try {
                         callback.callback(WikiStatus.SUCCESS, fetchWikiResponse(object));
                     } catch (Throwable t) {
-                        Log.e(CLASS_TAG, "General error", t);
+                        lg.error("General error", t);
                         callback.callback(WikiStatus.GENERAL_ERROR, null);
                     }
                 } else {