Index: /applications/editors/josm/plugins/MicrosoftStreetside/config/log4j.xml
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/config/log4j.xml	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/config/log4j.xml	(revision 34365)
@@ -11,7 +11,19 @@
   </appender>
 
+  <appender name="file" class="org.apache.log4j.RollingFileAppender">
+      <param name="append" value="true" />
+      <param name="maxFileSize" value="100MB" />
+      <param name="maxBackupIndex" value="100" />
+      <param name="file" value="logs/ms-josm-streetside.log" />
+      <layout class="org.apache.log4j.PatternLayout">
+    <param name="ConversionPattern" 
+      value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
+      </layout>
+  </appender>
+
   <root>
     <level value="DEBUG" />
     <appender-ref ref="console" />
+    <appender-ref ref="file" />
   </root>
 
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsideImage.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsideImage.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsideImage.java	(revision 34365)
@@ -100,5 +100,5 @@
 
   /*public void setAllDetections(Collection<ImageDetection> newDetections) {
-    Logging.debug("Add {0} detections to image {1}", newDetections.size(), getId());
+    logger.debug("Add {0} detections to image {1}", newDetections.size(), getId());
     synchronized (detections) {
       detections.clear();
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsideLayer.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsideLayer.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/StreetsideLayer.java	(revision 34365)
@@ -21,4 +21,5 @@
 import javax.swing.Icon;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Bounds;
@@ -50,5 +51,4 @@
 import org.openstreetmap.josm.tools.I18n;
 import org.openstreetmap.josm.tools.ImageProvider.ImageSizes;
-import org.openstreetmap.josm.tools.Logging;
 
 /**
@@ -60,4 +60,6 @@
 public final class StreetsideLayer extends AbstractModifiableLayer implements
 ActiveLayerChangeListener, StreetsideDataListener {
+
+  final static Logger logger = Logger.getLogger(StreetsideLayer.class);
 
   /** The radius of the image marker */
@@ -338,5 +340,5 @@
   private void drawImageMarker(final Graphics2D g, final StreetsideAbstractImage img) {
     if (img == null || img.getLatLon() == null) {
-      Logging.warn("An image is not painted, because it is null or has no LatLon!");
+      logger.warn("An image is not painted, because it is null or has no LatLon!");
       return;
     }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/actions/StreetsideDownloadAction.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/actions/StreetsideDownloadAction.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/actions/StreetsideDownloadAction.java	(revision 34365)
@@ -7,13 +7,12 @@
 import java.awt.event.KeyEvent;
 
-import org.openstreetmap.josm.plugins.streetside.StreetsideLayer;
-
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.plugins.streetside.StreetsideLayer;
 import org.openstreetmap.josm.plugins.streetside.StreetsidePlugin;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.ImageProvider.ImageSizes;
-import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -29,4 +28,6 @@
   private static final long serialVersionUID = 4426446157849005029L;
   public static final Shortcut SHORTCUT = Shortcut.registerShortcut("Streetside", tr("Open Streetside layer"), KeyEvent.VK_COMMA, Shortcut.SHIFT);
+
+  final static Logger logger = Logger.getLogger(StreetsideDownloadAction.class);
 
   /**
@@ -62,5 +63,5 @@
     } catch (IllegalArgumentException e) {
       // If the StreetsideLayer is not managed by LayerManager but you try to set it as active layer
-      Logging.warn(e);
+      logger.warn(e);
     }
   }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/actions/StreetsideExportAction.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/actions/StreetsideExportAction.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/actions/StreetsideExportAction.java	(revision 34365)
@@ -16,4 +16,5 @@
 import javax.swing.JOptionPane;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
@@ -40,4 +41,6 @@
 
   private static final long serialVersionUID = 6131359489725632369L;
+
+  final static Logger logger = Logger.getLogger(StreetsideExportAction.class);
 
   private StreetsideExportDialog dialog;
@@ -99,5 +102,5 @@
         MainApplication.worker.execute(new StreetsideExportManager(images));
       } catch (IOException e1) {
-        Logging.error(e1);
+        logger.error(e1);
       }
     }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cache/CacheUtils.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cache/CacheUtils.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cache/CacheUtils.java	(revision 34365)
@@ -5,4 +5,5 @@
 import java.io.IOException;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.data.cache.CacheEntry;
 import org.openstreetmap.josm.data.cache.CacheEntryAttributes;
@@ -19,4 +20,6 @@
 */
 public final class CacheUtils {
+
+final static Logger logger = Logger.getLogger(CacheUtils.class);
 
 private static IgnoreDownload ignoreDownload = new IgnoreDownload();
@@ -85,5 +88,5 @@
    case CUBEMAP:
 	   if(img.getId()==null) {
-		   Logging.error("Download cancelled. Image id is null.");
+		   logger.error("Download cancelled. Image id is null.");
 	   } else {
 		   CubemapBuilder.getInstance().downloadCubemapImages(img.getId());
@@ -259,5 +262,5 @@
    new StreetsideCache(key, type).submit(lis, false);
  } catch (IOException e) {
-   Logging.error(e);
+   logger.error(e);
  }
 }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cache/Caches.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cache/Caches.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cache/Caches.java	(revision 34365)
@@ -10,5 +10,5 @@
 import org.apache.commons.jcs.access.CacheAccess;
 import org.apache.commons.jcs.engine.behavior.IElementAttributes;
-
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.cache.BufferedImageCacheEntry;
@@ -18,4 +18,6 @@
 
 public final class Caches {
+
+  final static Logger logger = Logger.getLogger(Caches.class);
 
 	private Caches() {
@@ -39,5 +41,5 @@
 				c = createNewCache();
 			} catch (IOException e) {
-				Logging.log(Logging.LEVEL_WARN, "Could not initialize cache for " + getClass().getName(), e);
+				logger.warn("Could not initialize cache for " + getClass().getName(), e);
 				c = null;
 			}
@@ -96,5 +98,5 @@
 				c = JCSCacheManager.getCache("streetside", 10, 10000, Caches.getCacheDirectory().getPath());
 			} catch (Exception e) {
-				Logging.log(Logging.LEVEL_WARN, "Could not initialize the Streetside cubemap cache.", e);
+				logger.warn("Could not initialize the Streetside cubemap cache.", e);
 				c = null;
 			}
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapBuilder.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapBuilder.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapBuilder.java	(revision 34365)
@@ -12,4 +12,5 @@
 import java.util.concurrent.Future;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.plugins.streetside.StreetsideAbstractImage;
 import org.openstreetmap.josm.plugins.streetside.StreetsideCubemap;
@@ -21,5 +22,4 @@
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideProperties;
 import org.openstreetmap.josm.tools.I18n;
-import org.openstreetmap.josm.tools.Logging;
 
 import javafx.scene.image.Image;
@@ -28,4 +28,6 @@
 @SuppressWarnings("restriction")
 public class CubemapBuilder implements ITileDownloadingTaskListener, StreetsideDataListener {
+
+  final static Logger logger = Logger.getLogger(CubemapBuilder.class);
 
 	private static CubemapBuilder instance;
@@ -89,5 +91,5 @@
 
 			long runTime = (System.currentTimeMillis()-startTime)/1000;
-			Logging.debug("Completed downloading tiles for {0} in {1} seconds.",newImage.getId(),runTime);
+			logger.info(I18n.tr("Completed downloading tiles for {0} in {1} seconds.", newImage.getId(),runTime));
 		}
 	}
@@ -126,5 +128,5 @@
 									+ Integer.valueOf(tileNr++).toString());// + Integer.valueOf(k).toString()));
 							tasks.add(new TileDownloadingTask(tileId));
-							Logging.debug(
+							logger.info(
 									I18n.tr("Starting tile downloading task for imageId {0}, cubeface {1}, tileNr {2}",
 											tileId, CubemapUtils.getFaceNumberForCount(i), String.valueOf(tileNr)));
@@ -136,5 +138,5 @@
 				for (Future<String> ff : results) {
 
-					Logging.debug(I18n.tr("Completed tile downloading task {0} in {1}", ff.get(),
+					logger.debug(I18n.tr("Completed tile downloading task {0} in {1}", ff.get(),
 							(startTime - System.currentTimeMillis())/ 1000));
 				}
@@ -149,7 +151,11 @@
 									+ String.valueOf(Integer.valueOf(j).toString() + Integer.valueOf(k).toString()));
 							tasks.add(new TileDownloadingTask(tileId));
-							Logging.debug(
-									I18n.tr("Starting tile downloading task for imageId {0}, cubeface {1}, tileID {2}",
-											imageId, CubemapUtils.getFaceNumberForCount(i), tileId));
+              if (StreetsideProperties.DEBUGING_ENABLED.get()) {
+                logger.debug(
+                  I18n.tr(
+                    "Starting tile downloading task for imageId {0}, cubeface {1}, tileID {2}", imageId,
+                    CubemapUtils.getFaceNumberForCount(i), tileId)
+                  );
+              }
 						}
 					}
@@ -158,5 +164,5 @@
 				List<Future<String>> results = pool.invokeAll(tasks);
 				for (Future<String> ff : results) {
-					Logging.debug(I18n.tr("Completed tile downloading task {0} in {1}", ff.get(),
+					logger.debug(I18n.tr("Completed tile downloading task {0} in {1}", ff.get(),
 							(startTime - System.currentTimeMillis())/ 1000));
 				}
@@ -164,5 +170,5 @@
 		} catch (Exception ee) {
 			fails++;
-			Logging.error("Error loading tile for image {0}", imageId);
+			logger.error(I18n.tr("Error loading tile for image {0}", imageId));
 			ee.printStackTrace();
 		}
@@ -171,8 +177,10 @@
 		long runTime = stopTime - startTime;
 
-		Logging.debug(I18n.tr("Tile imagery downloading tasks completed in {0}", runTime/1000000));
+		if (StreetsideProperties.DEBUGING_ENABLED.get()) {
+      logger.debug(I18n.tr("Tile imagery downloading tasks completed in {0}", runTime/1000000));
+		}
 
 		if (fails > 0) {
-			Logging.error(I18n.tr("{0} downloading tasks failed.", Integer.valueOf(fails)));
+			logger.error(I18n.tr("{0} downloading tasks failed.", Integer.valueOf(fails)));
 		}
 
@@ -200,6 +208,8 @@
 
 		if (tileCount == (CubemapUtils.NUM_SIDES * maxCols * maxRows)) {
-			Logging.debug(I18n.tr("{0} tile images ready for building cumbemap faces for cubemap {0}", tileCount,
+		  if (StreetsideProperties.DEBUGING_ENABLED.get()) {
+        logger.debug(I18n.tr("{0} tile images ready for building cumbemap faces for cubemap {0}", tileCount,
 					CubemapBuilder.getInstance().getCubemap().getId()));
+		  }
 
 			buildCubemapFaces();
@@ -209,5 +219,8 @@
 	private void buildCubemapFaces() {
 
-	  Logging.debug("Assembling cubemap tile images");
+	  if (StreetsideProperties.DEBUGING_ENABLED.get()) {
+      logger.debug("Assembling cubemap tile images");
+	  }
+
 	  CubemapBox cmb = StreetsideViewerDialog.getInstance().getStreetsideViewerPanel().getCubemapBox();
 		ImageView[] views = cmb.getViews();
@@ -241,5 +254,7 @@
 				  final long start = System.nanoTime();
 					finalImg = GraphicsUtils.rotateImage(finalImg);
-					Logging.debug(I18n.tr("Rotation took {0}", System.nanoTime() - start));
+					if (StreetsideProperties.DEBUGING_ENABLED.get()) {
+            logger.debug(I18n.tr("Rotation took {0}", System.nanoTime() - start));
+					}
 				}
 				finalImages[i] = GraphicsUtils.convertBufferedImage2JavaFXImage(finalImg);
@@ -295,6 +310,7 @@
                 .setScene(StreetsideViewerPanel.getThreeSixtyDegreeViewerPanel().getCubemapScene());
             /*} catch (NonInvertibleTransformException nite) {
-              // TODO Auto-generated catch block
-              Logging.error(I18n.tr("Error setting scene in 360 viewer panel {0}", nite.getMessage()));
+              if (StreetsideProperties.DEBUGING_ENABLED.get()) {
+                logger.debug(I18n.tr("Error setting scene in 360 viewer panel {0}", nite.getMessage()));
+              }
             }*/
         /*}
@@ -307,13 +323,19 @@
     long endTime = System.currentTimeMillis();
     long runTime = (endTime - startTime) / 1000;
-    Logging.debug(
+    if (StreetsideProperties.DEBUGING_ENABLED.get()) {
+      logger.debug(
       I18n.tr(
         "Completed downloading, assembling and setting cubemap imagery for cubemap {0} in {1}", cubemap.getId(), runTime
         )
       );
-      CubemapBuilder.getInstance().setTileImages(new HashMap<String, BufferedImage>());
-	}
-
-	/**
+    }
+    CubemapBuilder.getInstance().resetTileImages();
+	}
+
+	private void resetTileImages() {
+    tileImages = new HashMap<String,BufferedImage>();
+  }
+
+  /**
 	 * @return the cubemap
 	 */
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapUtils.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapUtils.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/CubemapUtils.java	(revision 34365)
@@ -2,11 +2,9 @@
 package org.openstreetmap.josm.plugins.streetside.cubemap;
 
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.stream.Stream;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideProperties;
 import org.openstreetmap.josm.tools.I18n;
@@ -14,4 +12,7 @@
 
 public class CubemapUtils {
+
+  final static Logger logger = Logger.getLogger(CubemapUtils.class);
+
 
 	public enum CubefaceType {
@@ -100,6 +101,7 @@
 		final StringBuilder sb = new StringBuilder();
 
-		Logging.debug(I18n.tr("convertDecimal2Quaternary input: {0}", Long.toString(inputNum)));
-
+		if (StreetsideProperties.DEBUGING_ENABLED.get()) {
+      logger.debug(I18n.tr("convertDecimal2Quaternary input: {0}", Long.toString(inputNum)));
+		}
 
 		while (inputNum > 0) {
@@ -108,8 +110,11 @@
 		}
 
-		sb.append("0");
+		// TODO: leading zeros added in StreetsideURL now
+		//sb.append("0");
 		res = sb.reverse().toString();
 
-		Logging.debug(I18n.tr("convertDecimal2Quaternary output: {0}", res));
+		if (StreetsideProperties.DEBUGING_ENABLED.get()) {
+      logger.debug(I18n.tr("convertDecimal2Quaternary output: {0}", res));
+		}
 
 		return res;
@@ -129,5 +134,5 @@
 			int current = Integer.valueOf(String.valueOf(inputNum.substring(i,i+1)));
 			if ( current >= 4) {
-				Logging.error(I18n.tr("Invalid bubbleId {0}", inputNum));
+				logger.error(I18n.tr("Invalid bubbleId {0}", inputNum));
 				return "-1";
 			}
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/GraphicsUtils.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/GraphicsUtils.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/GraphicsUtils.java	(revision 34365)
@@ -6,4 +6,5 @@
 import java.awt.image.BufferedImage;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideProperties;
 import org.openstreetmap.josm.tools.I18n;
@@ -16,4 +17,6 @@
 @SuppressWarnings({ "restriction"})
 public class GraphicsUtils {
+
+  final static Logger logger = Logger.getLogger(GraphicsUtils.class);
 
 	public static javafx.scene.image.Image convertBufferedImage2JavaFXImage(BufferedImage bf) {
@@ -104,5 +107,5 @@
         }
 
-        Logging.debug(I18n.tr("Image concatenated in {0} millisecs.",(System.currentTimeMillis()-start)));
+        logger.info(I18n.tr("Image concatenated in {0} millisecs.",(System.currentTimeMillis()-start)));
         return res;
 	}
@@ -131,5 +134,5 @@
 			}
 
-		Logging.debug("Images cropped in {0} millisecs.",(System.currentTimeMillis()-start));
+		logger.info(I18n.tr("Images cropped in {0} millisecs.",(System.currentTimeMillis()-start)));
 
 		return res;
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/TileDownloadingTask.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/TileDownloadingTask.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/cubemap/TileDownloadingTask.java	(revision 34365)
@@ -3,5 +3,4 @@
 
 import java.awt.image.BufferedImage;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Objects;
@@ -11,5 +10,7 @@
 import javax.imageio.ImageIO;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.plugins.streetside.cache.StreetsideCache;
+import org.openstreetmap.josm.plugins.streetside.utils.StreetsideProperties;
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideURL;
 import org.openstreetmap.josm.tools.I18n;
@@ -19,4 +20,6 @@
 
 public class TileDownloadingTask implements Callable<String> {
+
+  final static Logger logger = Logger.getLogger(TileDownloadingTask.class);
 
 	private String tileId;
@@ -104,5 +107,5 @@
 
 		if (img == null) {
-			Logging.error(I18n.tr("Download of BufferedImage {0} is null!", tileId));
+			logger.error(I18n.tr("Download of BufferedImage {0} is null!", tileId));
 		}
 
@@ -119,7 +122,9 @@
 		fireTileAdded(tileId);
 
-		long endTime = System.currentTimeMillis();
-		long runTime = (endTime-startTime)/1000;
-		Logging.debug("Loaded image for tile {0} in {1} seconds", tileId, runTime);
+		if (StreetsideProperties.DEBUGING_ENABLED.get()) {
+		  long endTime = System.currentTimeMillis();
+	    long runTime = (endTime-startTime)/1000;
+	    logger.debug(I18n.tr("Loaded image for tile {0} in {1} seconds", tileId, runTime));
+		}
 
 		return tileId;
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/StreetsideMainDialog.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/StreetsideMainDialog.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/StreetsideMainDialog.java	(revision 34365)
@@ -19,4 +19,5 @@
 import javax.swing.SwingUtilities;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.data.cache.CacheEntry;
 import org.openstreetmap.josm.data.cache.CacheEntryAttributes;
@@ -51,5 +52,8 @@
 	private static final long serialVersionUID = 2645654786827812861L;
 
-	public static final String BASE_TITLE = I18n.marktr("Microsoft Streetside image");
+  final static Logger logger = Logger.getLogger(StreetsideMainDialog.class);
+
+  public static final String BASE_TITLE = I18n.marktr("Microsoft Streetside image");
+
 	private static final String MESSAGE_SEPARATOR = " — ";
 
@@ -269,5 +273,5 @@
 					thumbnailCache.submit(this, false);
 				} catch (final IOException e) {
-					Logging.error(e);
+					logger.error(e);
 				}
 
@@ -283,5 +287,5 @@
 						imageCache.submit(this, false);
 					} catch (final IOException e) {
-						Logging.error(e);
+						logger.error(e);
 					}
 				}
@@ -292,5 +296,5 @@
 					streetsideImageDisplay.setImage(streetsideImage.getImage(), null);
 				} catch (final IOException e) {
-					Logging.error(e);
+					logger.error(e);
 				}
 			}*/
@@ -572,5 +576,5 @@
 				}
 			} catch (final IOException e) {
-				Logging.error(e);
+				logger.error(e);
 			}
 		}
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/StreetsidePreferenceSetting.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/StreetsidePreferenceSetting.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/StreetsidePreferenceSetting.java	(revision 34365)
@@ -26,4 +26,5 @@
 import javax.swing.SwingUtilities;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.actions.ExpertToggleAction;
 import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
@@ -38,9 +39,6 @@
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideColorScheme;
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideProperties;
-import org.openstreetmap.josm.plugins.streetside.utils.StreetsideURL;
-import org.openstreetmap.josm.plugins.streetside.utils.StreetsideUtils;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.I18n;
-import org.openstreetmap.josm.tools.Logging;
 
 /**
@@ -51,4 +49,7 @@
  */
 public class StreetsidePreferenceSetting implements SubPreferenceSetting, StreetsideLoginListener {
+
+  final static Logger logger = Logger.getLogger(StreetsidePreferenceSetting.class);
+
   private final JComboBox<String> downloadModeComboBox = new JComboBox<>(new String[]{
       DOWNLOAD_MODE.VISIBLE_AREA.getLabel(),
@@ -117,8 +118,8 @@
         brandImage.setIcon(new ImageIcon(ImageIO.read(is)));
       } else {
-        Logging.warn("Could not load Streetside brand image!");
+        logger.warn("Could not load Streetside brand image!");
       }
     } catch (IOException e) {
-      Logging.warn("While reading Streetside brand image, an IO-exception occured!");
+      logger.warn("While reading Streetside brand image, an IO-exception occured!");
     }
     loginPanel.add(brandImage, 0);
@@ -252,5 +253,5 @@
         StreetsideUtils.browse(StreetsideURL.MainWebsite.connect("http://localhost:"+OAuthPortListener.PORT+'/'));
       } catch (IOException e) {
-        Logging.error(e);
+        logger.error(e);
       }*/
     }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/dialog/ChooseGeoImageLayersDialog.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/dialog/ChooseGeoImageLayersDialog.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/dialog/ChooseGeoImageLayersDialog.java	(revision 34365)
@@ -32,5 +32,4 @@
 import org.openstreetmap.josm.tools.I18n;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.tools.Logging;
 
 public class ChooseGeoImageLayersDialog extends JDialog {
@@ -69,5 +68,5 @@
               } catch (IllegalArgumentException iae) {
                 final String message = I18n.tr("Could not import a geotagged image to the Streetside layer!");
-                Logging.log(Logging.LEVEL_WARN, message, iae);
+                logger.warn(I18n.tr(message, iae));
                 if (!GraphicsEnvironment.isHeadless()) {
                   new Notification(message).setIcon(StreetsidePlugin.LOGO.get()).show();
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/ImageInfoHelpPopup.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/ImageInfoHelpPopup.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/ImageInfoHelpPopup.java	(revision 34365)
@@ -14,4 +14,5 @@
 import javax.swing.JTextPane;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.plugins.streetside.gui.boilerplate.SelectableLabel;
 import org.openstreetmap.josm.plugins.streetside.gui.boilerplate.StreetsideButton;
@@ -20,9 +21,10 @@
 import org.openstreetmap.josm.tools.I18n;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.tools.Logging;
 
 public class ImageInfoHelpPopup extends JPopupMenu {
 
   private static final long serialVersionUID = -1721594904273820586L;
+
+  final static Logger logger = Logger.getLogger(ImageInfoHelpPopup.class);
 
   private final Component invokerComp;
@@ -85,5 +87,5 @@
         return true;
       } catch (IllegalComponentStateException e) {
-        Logging.log(Logging.LEVEL_WARN, "Could not show ImageInfoHelpPopup, because probably the invoker component has disappeared from screen.", e);
+        logger.warn(I18n.tr("Could not show ImageInfoHelpPopup, because probably the invoker component has disappeared from screen.", e));
       }
     }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/ImageInfoPanel.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/ImageInfoPanel.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/ImageInfoPanel.java	(revision 34365)
@@ -2,8 +2,6 @@
 package org.openstreetmap.josm.plugins.streetside.gui.imageinfo;
 
-import java.awt.Font;
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
-import java.awt.Image;
 import java.awt.Insets;
 import java.awt.datatransfer.StringSelection;
@@ -16,9 +14,7 @@
 import javax.swing.JTextPane;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.data.osm.DataSelectionListener;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
-import org.openstreetmap.josm.data.osm.Tag;
 import org.openstreetmap.josm.data.osm.event.SelectionEventManager;
 import org.openstreetmap.josm.data.preferences.AbstractProperty.ValueChangeListener;
@@ -29,5 +25,4 @@
 import org.openstreetmap.josm.plugins.streetside.gui.boilerplate.SelectableLabel;
 import org.openstreetmap.josm.plugins.streetside.gui.boilerplate.StreetsideButton;
-import org.openstreetmap.josm.plugins.streetside.model.UserProfile;
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideProperties;
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideURL;
@@ -36,5 +31,7 @@
 public final class ImageInfoPanel extends ToggleDialog implements StreetsideDataListener, DataSelectionListener {
   private static final long serialVersionUID = 4141847503072417190L;
-  private static final Log L = LogFactory.getLog(ImageInfoPanel.class);
+
+  final static Logger logger = Logger.getLogger(ImageInfoPanel.class);
+
   private static ImageInfoPanel instance;
   private static final ImageIcon EMPTY_USER_AVATAR = new ImageIcon(new BufferedImage(32, 32, BufferedImage.TYPE_INT_ARGB));
@@ -42,9 +39,9 @@
   //private final JLabel numDetectionsLabel;
   //private final JCheckBox showDetectionsCheck;
-  private final JLabel usernameLabel;
+  //private final JLabel usernameLabel;
   private final JTextPane imgKeyValue;
   private final WebLinkAction imgLinkAction;
   private final ClipboardAction copyImgKeyAction;
-  private final AddTagToPrimitiveAction addStreetsideTagAction;
+  //private final AddTagToPrimitiveAction addStreetsideTagAction;
   private final JTextPane seqKeyValue;
 
@@ -73,6 +70,6 @@
     );*/
 
-    usernameLabel = new JLabel();
-    usernameLabel.setFont(usernameLabel.getFont().deriveFont(Font.PLAIN));
+    //usernameLabel = new JLabel();
+    //usernameLabel.setFont(usernameLabel.getFont().deriveFont(Font.PLAIN));
 
     imgKeyValue = new SelectableLabel();
@@ -84,5 +81,5 @@
     copyImgKeyAction.setPopupParent(copyButton);
 
-    addStreetsideTagAction = new AddTagToPrimitiveAction(I18n.tr("Add Streetside tag"));
+    //addStreetsideTagAction = new AddTagToPrimitiveAction(I18n.tr("Add Streetside tag"));
 
     JPanel imgKey = new JPanel();
@@ -91,5 +88,5 @@
     JPanel imgButtons = new JPanel();
     imgButtons.add(new StreetsideButton(imgLinkAction, true));
-    imgButtons.add(new StreetsideButton(addStreetsideTagAction, true));
+    //imgButtons.add(new StreetsideButton(addStreetsideTagAction, true));
     seqKeyValue = new SelectableLabel();
 
@@ -104,11 +101,11 @@
     gbc.gridwidth = 1;
     gbc.gridheight = 2;
-    root.add(new JLabel(I18n.tr("Image detections")), gbc);
-    gbc.gridy += 2;
-    gbc.gridheight = 1;
-    root.add(new JLabel(I18n.tr("User")), gbc);
-    gbc.gridy++;
-    root.add(new JLabel(I18n.tr("Image actions")), gbc);
-    gbc.gridy++;
+    //root.add(new JLabel(I18n.tr("Image detections")), gbc);
+    //gbc.gridy += 2;
+    //gbc.gridheight = 1;
+    //root.add(new JLabel(I18n.tr("User")), gbc);
+    //gbc.gridy++;
+    //root.add(new JLabel(I18n.tr("Image actions")), gbc);
+    //gbc.gridy++;
     root.add(new JLabel(I18n.tr("Image key")), gbc);
     gbc.gridy++;
@@ -124,6 +121,6 @@
     //root.add(showDetectionsCheck, gbc);
     //gbc.gridy++;
-    root.add(usernameLabel, gbc);
-    gbc.gridy++;
+    //root.add(usernameLabel, gbc);
+    //gbc.gridy++;
     root.add(imgButtons, gbc);
     gbc.gridy++;
@@ -176,5 +173,5 @@
   @Override
   public synchronized void selectedImageChanged(final StreetsideAbstractImage oldImage, final StreetsideAbstractImage newImage) {
-    L.debug(String.format(
+    logger.info(String.format(
       "Selected Streetside image changed from %s to %s.",
       oldImage instanceof StreetsideImage ? ((StreetsideImage) oldImage).getId() : "‹none›",
@@ -196,5 +193,5 @@
       imgKeyValue.setText(newImageKey);
       copyImgKeyAction.setContents(new StringSelection(newImageKey));
-      addStreetsideTagAction.setTag(new Tag("streetside", newImageKey));
+      //addStreetsideTagAction.setTag(new Tag("streetside", newImageKey));
     } else {
       if (imageLinkChangeListener != null) {
@@ -206,8 +203,8 @@
       imgKeyValue.setText('‹' + I18n.tr("image has no key") + '›');
       copyImgKeyAction.setContents(null);
-      addStreetsideTagAction.setTag(null);
-    }
-
-    final UserProfile user = newImage instanceof StreetsideImage ? ((StreetsideImage) newImage).getUser() : null;
+      //addStreetsideTagAction.setTag(null);
+    }
+
+    /*final UserProfile user = newImage instanceof StreetsideImage ? ((StreetsideImage) newImage).getUser() : null;
     usernameLabel.setEnabled(user != null);
     if (user != null) {
@@ -217,5 +214,5 @@
       usernameLabel.setText("‹" + I18n.tr("unknown user") + "›");
       usernameLabel.setIcon(EMPTY_USER_AVATAR);
-    }
+    }*/
 
     final boolean partOfSequence = newImage != null && newImage.getSequence() != null && newImage.getSequence().getId() != null;
@@ -234,6 +231,8 @@
   public synchronized void selectionChanged(final SelectionChangeEvent event) {
     final Collection<? extends OsmPrimitive> sel = event.getSelection();
-    L.debug(String.format("Selection changed. %d primitives are selected.", sel == null ? 0 : sel.size()));
-    addStreetsideTagAction.setTarget(sel != null && sel.size() == 1 ? sel.iterator().next() : null);
+    if (StreetsideProperties.DEBUGING_ENABLED.get()) {
+      logger.debug(String.format("Selection changed. %d primitives are selected.", sel == null ? 0 : sel.size()));
+    }
+    //addStreetsideTagAction.setTarget(sel != null && sel.size() == 1 ? sel.iterator().next() : null);
   }
 }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/StreetsideViewerPanel.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/StreetsideViewerPanel.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/StreetsideViewerPanel.java	(revision 34365)
@@ -8,4 +8,5 @@
 import javax.swing.SwingUtilities;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.data.preferences.AbstractProperty.ValueChangeListener;
 import org.openstreetmap.josm.plugins.streetside.StreetsideAbstractImage;
@@ -23,9 +24,10 @@
 import org.openstreetmap.josm.tools.Logging;
 
-
 public final class StreetsideViewerPanel extends JPanel
 		implements StreetsideDataListener {
 
 	private static final long serialVersionUID = 4141847503072417190L;
+
+	final static Logger logger = Logger.getLogger(StreetsideViewerPanel.class);
 
 	private JCheckBox highResImageryCheck;
@@ -122,5 +124,5 @@
 		if(newImage!=null) {
 
-		    Logging.debug(String.format(
+		    logger.info(String.format(
 		      "Selected Streetside image changed from %s to %s.",
 		      oldImage instanceof StreetsideImage ? ((StreetsideImage) oldImage).getId() : "‹none›",
@@ -137,5 +139,5 @@
 		      );
 
-		      Logging.debug(I18n.tr("Privacy link invoked for Streetside image {0}", bubbleId));
+		      logger.debug(I18n.tr("Privacy link set for Streetside image {0} quadKey {1}", bubbleId, newImageId));
 
 		      imageLinkChangeListener.valueChanged(null);
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/ThreeSixtyDegreeViewerPanel.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/ThreeSixtyDegreeViewerPanel.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/ThreeSixtyDegreeViewerPanel.java	(revision 34365)
@@ -96,5 +96,5 @@
 				  //setScene(createScene());
 				/*} catch (NonInvertibleTransformException e) {
-					Logging.error(I18n.tr("Error initializing StreetsideViewerPanel - JavaFX {0}", e.getMessage()));
+					logger.error(I18n.tr("Error initializing StreetsideViewerPanel - JavaFX {0}", e.getMessage()));
 				}*/
 			}
@@ -493,5 +493,5 @@
 					setScene(scene);
 				} catch (NonInvertibleTransformException e) {
-					Logging.error(I18n.tr("Error initializing StreetsideViewerPanel - JavaFX {0}", e.getMessage()));
+					logger.error(I18n.tr("Error initializing StreetsideViewerPanel - JavaFX {0}", e.getMessage()));
 				}
 			}
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/WebLinkAction.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/WebLinkAction.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/gui/imageinfo/WebLinkAction.java	(revision 34365)
@@ -9,4 +9,5 @@
 import javax.swing.JOptionPane;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.gui.Notification;
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideUtils;
@@ -14,9 +15,10 @@
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.ImageProvider.ImageSizes;
-import org.openstreetmap.josm.tools.Logging;
 
 public class WebLinkAction extends AbstractAction {
 
   private static final long serialVersionUID = -8168227661356480455L;
+
+  final static Logger logger = Logger.getLogger(WebLinkAction.class);
 
   private URL url;
@@ -44,5 +46,5 @@
     } catch (IOException e1) {
       String msg = I18n.tr("Could not open the URL {0} in a browser", url == null ? "‹null›" : url);
-      Logging.log(Logging.LEVEL_WARN, msg, e1);
+      logger.warn(msg, e1);
       new Notification(msg).setIcon(JOptionPane.WARNING_MESSAGE).show();
     }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/BoundsDownloadRunnable.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/BoundsDownloadRunnable.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/BoundsDownloadRunnable.java	(revision 34365)
@@ -9,9 +9,9 @@
 import java.util.function.Function;
 
-import org.openstreetmap.josm.plugins.streetside.utils.StreetsideURL.APIv3;
-
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.gui.Notification;
 import org.openstreetmap.josm.plugins.streetside.StreetsidePlugin;
+import org.openstreetmap.josm.plugins.streetside.utils.StreetsideURL.APIv3;
 import org.openstreetmap.josm.tools.I18n;
 import org.openstreetmap.josm.tools.ImageProvider.ImageSizes;
@@ -19,4 +19,6 @@
 
 public abstract class BoundsDownloadRunnable implements Runnable {
+
+  final static Logger logger = Logger.getLogger(BoundsDownloadRunnable.class);
 
   protected Bounds bounds;
@@ -30,9 +32,9 @@
   public void run() {
     URL nextURL = getUrlGenerator().apply(bounds);
-    Logging.debug("nextURL: {0}", nextURL.toString());
+    logger.info(I18n.tr("nextURL: {0}", nextURL.toString()));
     try {
       while (nextURL != null) {
         if (Thread.interrupted()) {
-          Logging.debug("{} for {} interrupted!", getClass().getSimpleName(), bounds.toString());
+          logger.info(I18n.tr("{} for {} interrupted!", getClass().getSimpleName(), bounds.toString()));
           return;
         }
@@ -43,5 +45,5 @@
     } catch (IOException e) {
       String message = I18n.tr("Could not read from URL {0}!", nextURL.toString());
-      Logging.log(Logging.LEVEL_WARN, message, e);
+      logger.warn(message, e);
       if (!GraphicsEnvironment.isHeadless()) {
         new Notification(message)
@@ -55,5 +57,5 @@
 
   /**
-   * Logs information about the given connection via {@link Logging#info(String)}.
+   * Logs information about the given connection via {@link logger#info(String)}.
    * If it's a {@link HttpURLConnection}, the request method, the response code and the URL itself are logged.
    * Otherwise only the URL is logged.
@@ -74,5 +76,5 @@
       message.append(" (").append(info).append(')');
     }
-    Logging.debug(message.toString());
+    logger.info(message.toString());
   }
 
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/SequenceDownloadRunnable.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/SequenceDownloadRunnable.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/SequenceDownloadRunnable.java	(revision 34365)
@@ -21,5 +21,4 @@
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideURL.APIv3;
 import org.openstreetmap.josm.tools.I18n;
-import org.openstreetmap.josm.tools.Logging;
 
 import com.fasterxml.jackson.core.JsonParseException;
@@ -130,5 +129,5 @@
 
       	  bubbleImages.add(image);
-          Logging.info("Added image with id <" + image.getId() + ">");
+          logger.info(I18n.tr("Added image with id <" + image.getId() + ">"));
           if (StreetsideProperties.PREDOWNLOAD_CUBEMAPS.get()) {
             StreetsideData.downloadSurroundingCubemaps(image);
@@ -188,5 +187,5 @@
 
     final long endTime = System.currentTimeMillis();
-    Logging.debug(I18n.tr("Sucessfully loaded {0} Microsoft Streetside images in {0} ",seq.getImages().size(),endTime-startTime%60));
+    logger.info(I18n.tr("Sucessfully loaded {0} Microsoft Streetside images in {0} ",seq.getImages().size(),endTime-startTime%60));
   }
 
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/StreetsideDownloader.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/StreetsideDownloader.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/StreetsideDownloader.java	(revision 34365)
@@ -6,4 +6,5 @@
 import java.util.concurrent.TimeUnit;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -14,5 +15,4 @@
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideProperties;
 import org.openstreetmap.josm.tools.I18n;
-import org.openstreetmap.josm.tools.Logging;
 
 /**
@@ -23,4 +23,6 @@
  */
 public final class StreetsideDownloader {
+
+  final static Logger logger = Logger.getLogger(StreetsideDownloader.class);
 
   /** Possible download modes. */
@@ -198,5 +200,5 @@
    * lots of Streetside images are going to be downloaded, slowing down the
    * program too much. A notification is shown when the download has stopped or continued.
-   * @param area area to check 
+   * @param area area to check
    * @return {@code true} if the area is too big
    */
@@ -227,5 +229,5 @@
       executor.awaitTermination(30, TimeUnit.SECONDS);
     } catch (InterruptedException e) {
-      Logging.error(e);
+      logger.error(e);
     }
     executor = new ThreadPoolExecutor(3, 5, 100, TimeUnit.SECONDS,
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/StreetsideSquareDownloadRunnable.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/StreetsideSquareDownloadRunnable.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/download/StreetsideSquareDownloadRunnable.java	(revision 34365)
@@ -2,4 +2,5 @@
 package org.openstreetmap.josm.plugins.streetside.io.download;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.plugins.streetside.StreetsideLayer;
@@ -7,7 +8,10 @@
 import org.openstreetmap.josm.plugins.streetside.utils.PluginState;
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideUtils;
+import org.openstreetmap.josm.tools.I18n;
 import org.openstreetmap.josm.tools.Logging;
 
 public class StreetsideSquareDownloadRunnable implements Runnable {
+
+  final static Logger logger = Logger.getLogger(StreetsideSquareDownloadRunnable.class);
 
   private final Bounds bounds;
@@ -48,5 +52,5 @@
       //detectionsThread.join();
     } catch (InterruptedException e) {
-      Logging.log(Logging.LEVEL_WARN, "Streetside download interrupted (probably because of closing the layer).", e);
+      logger.warn(I18n.tr("Streetside download interrupted (probably because of closing the layer).", e));
       Thread.currentThread().interrupt();
     } finally {
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/export/StreetsideExportDownloadThread.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/export/StreetsideExportDownloadThread.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/export/StreetsideExportDownloadThread.java	(revision 34365)
@@ -9,4 +9,5 @@
 import javax.imageio.ImageIO;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.data.cache.CacheEntry;
 import org.openstreetmap.josm.data.cache.CacheEntryAttributes;
@@ -16,5 +17,4 @@
 import org.openstreetmap.josm.plugins.streetside.cache.CacheUtils;
 import org.openstreetmap.josm.plugins.streetside.cache.StreetsideCache;
-import org.openstreetmap.josm.tools.Logging;
 
 /**
@@ -28,4 +28,6 @@
 public class StreetsideExportDownloadThread extends Thread implements
     ICachedLoaderListener {
+
+  final static Logger logger = Logger.getLogger(StreetsideExportDownloadThread.class);
 
   private final ArrayBlockingQueue<BufferedImage> queue;
@@ -56,5 +58,5 @@
   @Override
   public void run() {
-    CacheUtils.submit(this.image.getId(), StreetsideCache.Type.FULL_IMAGE, this);
+    CacheUtils.submit(image.getId(), StreetsideCache.Type.FULL_IMAGE, this);
   }
 
@@ -64,10 +66,10 @@
     try {
       synchronized (StreetsideExportDownloadThread.class) {
-        this.queue
+        queue
             .put(ImageIO.read(new ByteArrayInputStream(data.getContent())));
-        this.queueImages.put(this.image);
+        queueImages.put(image);
       }
     } catch (InterruptedException | IOException e) {
-      Logging.error(e);
+      logger.error(e);
     }
   }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/export/StreetsideExportManager.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/export/StreetsideExportManager.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/export/StreetsideExportManager.java	(revision 34365)
@@ -13,4 +13,5 @@
 import java.util.concurrent.TimeUnit;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor;
@@ -18,5 +19,4 @@
 import org.openstreetmap.josm.plugins.streetside.StreetsideImage;
 import org.openstreetmap.josm.plugins.streetside.StreetsideImportedImage;
-import org.openstreetmap.josm.tools.Logging;
 
 /**
@@ -33,4 +33,6 @@
  */
 public class StreetsideExportManager extends PleaseWaitRunnable {
+
+  final static Logger logger = Logger.getLogger(StreetsideExportManager.class);
 
   private final ArrayBlockingQueue<BufferedImage> queue = new ArrayBlockingQueue<>(10);
@@ -58,5 +60,5 @@
     this.images = images == null ? new HashSet<>() : images;
     this.path = path;
-    this.amount = this.images.size();
+    amount = this.images.size();
   }
 
@@ -74,14 +76,14 @@
     this(null, null);
     for (StreetsideImportedImage image : images) {
-      this.queue.add(image.getImage());
-      this.queueImages.add(image);
+      queue.add(image.getImage());
+      queueImages.add(image);
     }
-    this.amount = images.size();
+    amount = images.size();
   }
 
   @Override
   protected void cancel() {
-    this.writer.interrupt();
-    this.ex.shutdown();
+    writer.interrupt();
+    ex.shutdown();
   }
 
@@ -89,31 +91,31 @@
   protected void realRun() throws IOException {
     // Starts a writer thread in order to write the pictures on the disk.
-    this.writer = new StreetsideExportWriterThread(this.path, this.queue,
-        this.queueImages, this.amount, this.getProgressMonitor());
-    this.writer.start();
-    if (this.path == null) {
+    writer = new StreetsideExportWriterThread(path, queue,
+        queueImages, amount, getProgressMonitor());
+    writer.start();
+    if (path == null) {
       try {
-        this.writer.join();
+        writer.join();
       } catch (InterruptedException e) {
-        Logging.error(e);
+        logger.error(e);
       }
       return;
     }
-    this.ex = new ThreadPoolExecutor(20, 35, 25, TimeUnit.SECONDS,
+    ex = new ThreadPoolExecutor(20, 35, 25, TimeUnit.SECONDS,
       new ArrayBlockingQueue<>(10));
-    for (StreetsideAbstractImage image : this.images) {
+    for (StreetsideAbstractImage image : images) {
       if (image instanceof StreetsideImage) {
         try {
-          this.ex.execute(new StreetsideExportDownloadThread(
-              (StreetsideImage) image, this.queue, this.queueImages));
+          ex.execute(new StreetsideExportDownloadThread(
+              (StreetsideImage) image, queue, queueImages));
         } catch (Exception e) {
-          Logging.error(e);
+          logger.error(e);
         }
       } else if (image instanceof StreetsideImportedImage) {
         try {
-          this.queue.put(((StreetsideImportedImage) image).getImage());
-          this.queueImages.put(image);
+          queue.put(((StreetsideImportedImage) image).getImage());
+          queueImages.put(image);
         } catch (InterruptedException e) {
-          Logging.error(e);
+          logger.error(e);
         }
       }
@@ -121,15 +123,15 @@
         // If the queue is full, waits for it to have more space
         // available before executing anything else.
-        while (this.ex.getQueue().remainingCapacity() == 0) {
+        while (ex.getQueue().remainingCapacity() == 0) {
           Thread.sleep(100);
         }
       } catch (Exception e) {
-        Logging.error(e);
+        logger.error(e);
       }
     }
     try {
-      this.writer.join();
+      writer.join();
     } catch (InterruptedException e) {
-      Logging.error(e);
+      logger.error(e);
     }
   }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/export/StreetsideExportWriterThread.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/export/StreetsideExportWriterThread.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/io/export/StreetsideExportWriterThread.java	(revision 34365)
@@ -24,5 +24,5 @@
 import org.apache.commons.imaging.formats.tiff.write.TiffOutputDirectory;
 import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet;
-
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor;
@@ -30,5 +30,4 @@
 import org.openstreetmap.josm.plugins.streetside.StreetsideImage;
 import org.openstreetmap.josm.plugins.streetside.StreetsideImportedImage;
-import org.openstreetmap.josm.tools.Logging;
 
 /**
@@ -39,4 +38,6 @@
  */
 public class StreetsideExportWriterThread extends Thread {
+
+  final static Logger logger = Logger.getLogger(StreetsideExportWriterThread.class);
 
   private final String path;
@@ -139,8 +140,8 @@
         os.close();
       } catch (InterruptedException e) {
-        Logging.info("Streetside export cancelled");
+        logger.info("Streetside export cancelled");
         return;
       } catch (IOException | ImageReadException | ImageWriteException e) {
-        Logging.error(e);
+        logger.error(e);
       }
 
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/model/MapObject.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/model/MapObject.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/model/MapObject.java	(revision 34365)
@@ -13,5 +13,4 @@
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideURL.MainWebsite;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.tools.Logging;
 
 public class MapObject extends KeyIndexedObject {
@@ -61,5 +60,5 @@
         return downloadedIcon;
       } catch (IOException e) {
-        Logging.log(Logging.LEVEL_WARN, "Failed to download icon " + objectTypeID, e);
+        logger.warn(I18n.tr("Failed to download icon " + objectTypeID, e));
         return ICON_UNKNOWN_TYPE;
       }*/
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/oauth/OAuthPortListener.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/oauth/OAuthPortListener.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/oauth/OAuthPortListener.java	(revision 34365)
@@ -14,9 +14,8 @@
 import java.util.regex.Pattern;
 
+import org.apache.log4j.Logger;
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideProperties;
-
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.tools.I18n;
-import org.openstreetmap.josm.tools.Logging;
 
 /**
@@ -30,4 +29,6 @@
 public static final int PORT = 8763;
 
+final static Logger logger = Logger.getLogger(OAuthPortListener.class);
+
 protected static final String RESPONSE = String.format(
    "<!DOCTYPE html><html><head><meta charset=\"utf8\"><title>%s</title></head><body>%s</body></html>",
@@ -38,5 +39,5 @@
 
 public OAuthPortListener(StreetsideLoginListener loginCallback) {
- this.callback = loginCallback;
+ callback = loginCallback;
 }
 
@@ -67,5 +68,5 @@
    StreetsideUser.reset();
 
-   Logging.info("Successful login with Mapillary, the access token is: {0}", accessToken);
+   logger.info(I18n.tr("Successful login with Mapillary, the access token is: {0}", accessToken));
    // Saves the access token in preferences.
    StreetsideUser.setTokenValid(true);
@@ -73,5 +74,5 @@
      StreetsideProperties.ACCESS_TOKEN.put(accessToken);
      String username = StreetsideUser.getUsername();
-     Logging.info("The username is: {0}", username);
+     logger.info(I18n.tr("The username is: {0}", username));
      if (callback != null) {
        callback.onLogin(username);
@@ -79,7 +80,7 @@
    }
  } catch (BindException e) {
-   Logging.warn(e);
+   logger.warn(e);
  } catch (IOException e) {
-   Logging.error(e);
+   logger.error(e);
  }
 }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/oauth/StreetsideUser.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/oauth/StreetsideUser.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/oauth/StreetsideUser.java	(revision 34365)
@@ -42,5 +42,5 @@
          .getString("username");
    } catch (IOException e) {
-     Logging.log(Logging.LEVEL_WARN, "Invalid Streetside token, resetting field", e);
+     logger.warn(I18n.tr("Invalid Streetside token, resetting field", e));
      reset();
    }
@@ -68,5 +68,5 @@
          .getString("images_policy");
  } catch (IOException e) {
-   Logging.log(Logging.LEVEL_WARN, "Invalid Streetside token, resetting field", e);
+   logger.warn(I18n.tr("Invalid Streetside token, resetting field", e));
    reset();
  }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/ImageUtil.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/ImageUtil.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/ImageUtil.java	(revision 34365)
@@ -6,7 +6,11 @@
 import javax.swing.ImageIcon;
 
-import org.openstreetmap.josm.tools.Logging;
+import org.apache.log4j.Logger;
+import org.openstreetmap.josm.tools.I18n;
 
 public final class ImageUtil {
+
+  final static Logger logger = Logger.getLogger(ImageUtil.class);
+
   private ImageUtil() {
     // Private constructor to avoid instantiation
@@ -21,5 +25,7 @@
    */
   public static ImageIcon scaleImageIcon(final ImageIcon icon, int size) {
-    Logging.debug("Scale icon {0} → {1}", icon.getIconWidth(), size);
+    if(StreetsideProperties.DEBUGING_ENABLED.get()) {
+      logger.debug(I18n.tr("Scale icon {0} → {1}", icon.getIconWidth(), size));
+    }
     return new ImageIcon(icon.getImage().getScaledInstance(
       icon.getIconWidth() >= icon.getIconHeight() ? size : Math.max(1, Math.round(icon.getIconWidth() / (float) icon.getIconHeight() * size)),
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/PluginState.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/PluginState.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/PluginState.java	(revision 34365)
@@ -6,6 +6,7 @@
 import javax.swing.JOptionPane;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.tools.Logging;
+import org.openstreetmap.josm.tools.I18n;
 
 /**
@@ -14,4 +15,6 @@
  */
 public final class PluginState {
+
+  final static Logger logger = Logger.getLogger(PluginState.class);
 
   private static boolean submittingChangeset;
@@ -39,5 +42,5 @@
   public static void finishDownload() {
     if (runningDownloads == 0) {
-      Logging.warn("The amount of running downloads is equal to 0");
+      logger.warn(I18n.tr("The amount of running downloads is equal to 0"));
       return;
     }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideProperties.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideProperties.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideProperties.java	(revision 34365)
@@ -24,5 +24,5 @@
   public static final IntegerProperty TILE_DOWNLOAD_THREAD_PAUSE_LEN_SEC = new IntegerProperty("streetside.tile-download-thread-pause-len-sec", 60);
   public static final BooleanProperty PREDOWNLOAD_CUBEMAPS = new BooleanProperty("streetside.predownload-cubemaps", false);
-
+  public static final BooleanProperty DEBUGING_ENABLED = new BooleanProperty("streetside.debugging-enabled", true);
   /**
    * If false, all sequences that cross the download bounds are put completely into the StreetsideData object.
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideURL.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideURL.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/StreetsideURL.java	(revision 34365)
@@ -15,4 +15,5 @@
 import java.util.Map.Entry;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.plugins.streetside.cubemap.CubemapUtils;
@@ -21,7 +22,9 @@
 
 public final class StreetsideURL {
+
+  final static Logger logger = Logger.getLogger(StreetsideURL.class);
+
 	/** Base URL of the Bing Bubble API. */
 	private static final String STREETSIDE_BASE_URL = "https://dev.virtualearth.net/mapcontrol/HumanScaleServices/GetBubbles.ashx";
-	//private static final String BASE_API_V2_URL = "https://a.mapillary.com/v2/";
 	private static final String CLIENT_ID = "T1Fzd20xZjdtR0s1VDk5OFNIOXpYdzoxNDYyOGRkYzUyYTFiMzgz";
 	private static final String BING_MAPS_KEY = "AuftgJsO0Xs8Ts4M1xZUQJQXJNsvmh3IV8DkNieCiy3tCwCUMq76-WpkrBtNAuEm";
@@ -135,5 +138,5 @@
 	public static final class VirtualEarth {
 		private static final String BASE_URL_PREFIX = "https://t.ssl.ak.tiles.virtualearth.net/tiles/hs";
-		private static final String BASE_URL_SUFFIX = ".jpg?g=6338&n=z";
+		private static final String BASE_URL_SUFFIX = ".jpg?g=6528&n=z";
 
 		private VirtualEarth() {
@@ -141,10 +144,35 @@
 		}
 
-		public static URL streetsideTile(String id, boolean thumbnail) {
-			if(thumbnail) {
-				id = id + "01";
-			}
-			URL url = StreetsideURL.string2URL(VirtualEarth.BASE_URL_PREFIX + id + VirtualEarth.BASE_URL_SUFFIX);
-			Logging.info("Tile task URL {0} invoked.", url.toString());
+		public static URL streetsideTile(final String id, boolean thumbnail) {
+			StringBuilder modifiedId = new StringBuilder();
+
+			// TODO: make code more elegant
+			if (thumbnail) {
+        // pad thumbnail imagery with leading zeros
+        if (id.length() < 16) {
+          for (int i = 0; i < 16 - id.length(); i++) {
+            modifiedId.append("0");
+          }
+        }
+        modifiedId.append(id).append("01");
+      } else if(StreetsideProperties.SHOW_HIGH_RES_STREETSIDE_IMAGERY.get()){
+        // pad 16-tiled imagery with leading zeros
+        if (id.length() < 20) {
+          for (int i = 0; i < 20 - id.length(); i++) {
+            modifiedId.append("0");
+          }
+          modifiedId.append(id);
+        }
+      } else if(!StreetsideProperties.SHOW_HIGH_RES_STREETSIDE_IMAGERY.get()) {
+        // pad 4-tiled imagery with leading zeros
+        if (id.length() < 19) {
+          for (int i = 0; i < 19 - id.length(); i++) {
+            modifiedId.append("0");
+          }
+          modifiedId.append(id);
+        }
+      }
+		  URL url = StreetsideURL.string2URL(VirtualEarth.BASE_URL_PREFIX + modifiedId.toString() + VirtualEarth.BASE_URL_SUFFIX);
+	    logger.info(I18n.tr("Tile task URL {0} invoked.", url.toString()));
 			return url;
 		}
@@ -166,5 +194,5 @@
 		public static URL browseImage(String id) {
 			if (id == null) {
-				throw new IllegalArgumentException("The image key must not be null!");
+				throw new IllegalArgumentException("The image id may not be null!");
 			}
 			return StreetsideURL.string2URL(VirtualEarth.BASE_URL_PREFIX + id + VirtualEarth.BASE_URL_SUFFIX);
@@ -185,5 +213,5 @@
 				urlEncodedKey = URLEncoder.encode(key, StandardCharsets.UTF_8.name());
 			} catch (final UnsupportedEncodingException e) {
-				Logging.log(Logging.LEVEL_ERROR, "Unsupported encoding when URL encoding", e);
+				logger.error(I18n.tr("Unsupported encoding when URL encoding", e));
 				urlEncodedKey = key;
 			}
@@ -205,5 +233,5 @@
 				urlEncodedId = URLEncoder.encode(id, StandardCharsets.UTF_8.name());
 			} catch (final UnsupportedEncodingException e) {
-				Logging.log(Logging.LEVEL_ERROR, "Unsupported encoding when URL encoding", e);
+				logger.error(I18n.tr("Unsupported encoding when URL encoding", e));
 				urlEncodedId = id;
 			}
@@ -253,5 +281,5 @@
 							res.add(new URL(urlStr));
 						} catch (final MalformedURLException e) {
-							Logging.error(I18n.tr("Error creating URL String for cubemap {0}", cubemapImageId));
+							logger.error(I18n.tr("Error creating URL String for cubemap {0}", cubemapImageId));
 							e.printStackTrace();
 						}
@@ -270,5 +298,5 @@
 						res.add(new URL(urlStr));
 					} catch (final MalformedURLException e) {
-						Logging.error(I18n.tr("Error creating URL String for cubemap {0}", cubemapImageId));
+						logger.error(I18n.tr("Error creating URL String for cubemap {0}", cubemapImageId));
 						e.printStackTrace();
 					}
@@ -305,10 +333,10 @@
 					.append(URLEncoder.encode(entry.getValue(), StandardCharsets.UTF_8.name()));
 				} catch (final UnsupportedEncodingException e) {
-					Logging.error(e); // This should not happen, as the encoding is hard-coded
+					logger.error(e); // This should not happen, as the encoding is hard-coded
 				}
 			}
 		}
 
-		Logging.info(I18n.tr("queryString result: {0}", ret.toString()));
+		logger.info(I18n.tr("queryString result: {0}", ret.toString()));
 
 		return ret.toString();
@@ -331,8 +359,8 @@
 				.append(StreetsideURL.BING_MAPS_KEY);
 			} catch (final UnsupportedEncodingException e) {
-				Logging.error(e); // This should not happen, as the encoding is hard-coded
-			}
-		}
-		Logging.info(I18n.tr("queryStreetsideBoundsString result: {0}", ret.toString()));
+				logger.error(e); // This should not happen, as the encoding is hard-coded
+			}
+		}
+		logger.info(I18n.tr("queryStreetsideBoundsString result: {0}", ret.toString()));
 
 		return ret.toString();
@@ -346,7 +374,7 @@
 			.append(URLEncoder.encode(StreetsideURL.BING_MAPS_KEY, StandardCharsets.UTF_8.name()));
 		} catch (final UnsupportedEncodingException e) {
-			Logging.error(e); // This should not happen, as the encoding is hard-coded
-		}
-		Logging.info(I18n.tr("queryById result: {0}", ret.toString()));
+			logger.error(e); // This should not happen, as the encoding is hard-coded
+		}
+		logger.info(I18n.tr("queryById result: {0}", ret.toString()));
 		return ret.toString();
 	}
@@ -354,5 +382,5 @@
 	/**
 	 * Converts a {@link String} into a {@link URL} without throwing a {@link MalformedURLException}.
-	 * Instead such an exception will lead to an {@link Logging#error(Throwable)}.
+	 * Instead such an exception will lead to an {@link logger#error(Throwable)}.
 	 * So you should be very confident that your URL is well-formed when calling this method.
 	 * @param strings the Strings describing the URL
@@ -367,9 +395,9 @@
 			return new URL(builder.toString());
 		} catch (final MalformedURLException e) {
-			Logging.log(Logging.LEVEL_ERROR, String.format(
+			logger.error(I18n.tr(String.format(
 					"The class '%s' produces malformed URLs like '%s'!",
 					StreetsideURL.class.getName(),
 					builder
-					), e);
+					), e));
 			return null;
 		}
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/api/JsonDecoder.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/api/JsonDecoder.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/api/JsonDecoder.java	(revision 34365)
@@ -14,8 +14,13 @@
 import javax.json.JsonValue;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.tools.I18n;
 import org.openstreetmap.josm.tools.Logging;
 
 public final class JsonDecoder {
+
+  final static Logger logger = Logger.getLogger(JsonDecoder.class);
+
   private JsonDecoder() {
     // Private constructor to avoid instantiation
@@ -92,5 +97,5 @@
    * @return the point in time as a {@link Long} value representing the UNIX epoch time, or <code>null</code> if the
    *   parameter does not match the required format (this also triggers a warning via
-   *   {@link Logging#warn(Throwable)}), or the parameter is <code>null</code>.
+   *   {@link logger#warn(Throwable)}), or the parameter is <code>null</code>.
    */
   static Long decodeTimestamp(final String timestamp) {
@@ -100,8 +105,8 @@
       } catch (ParseException e) {
         StackTraceElement calledBy = e.getStackTrace()[Math.min(e.getStackTrace().length - 1, 2)];
-        Logging.log(Logging.LEVEL_WARN,String.format(
+        logger.warn(I18n.tr(String.format(
           "Could not decode time from the timestamp `%s` (called by %s.%s:%d)",
           timestamp, calledBy.getClassName(), calledBy.getMethodName(), calledBy.getLineNumber()
-        ), e);
+        ), e));
       }
     }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/api/JsonImageDetectionDecoder.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/api/JsonImageDetectionDecoder.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/api/JsonImageDetectionDecoder.java	(revision 34365)
@@ -10,8 +10,7 @@
 import javax.json.JsonValue;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.plugins.streetside.model.ImageDetection;
 import org.openstreetmap.josm.plugins.streetside.utils.StreetsideURL.APIv3;
-import org.openstreetmap.josm.tools.Logging;
-
 
 /**
@@ -20,4 +19,7 @@
  */
 public final class JsonImageDetectionDecoder {
+
+  final static Logger logger = Logger.getLogger(JsonImageDetectionDecoder.class);
+
   private JsonImageDetectionDecoder() {
     // Private constructor to avoid instantiation
@@ -49,5 +51,5 @@
     if (json instanceof JsonObject) {
       if (!"Polygon".equals(((JsonObject) json).getString("type", null))) {
-        Logging.warn(
+        logger.warn(
           String.format("Image detections using shapes with type=%s are currently not supported!",
           ((JsonObject) json).getString("type", "‹no type set›"))
Index: /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/api/JsonStreetsideDecoder.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/api/JsonStreetsideDecoder.java	(revision 34364)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/src/org/openstreetmap/josm/plugins/streetside/utils/api/JsonStreetsideDecoder.java	(revision 34365)
@@ -14,8 +14,12 @@
 import javax.json.JsonValue;
 
+import org.apache.log4j.Logger;
 import org.openstreetmap.josm.data.coor.LatLon;
-import org.openstreetmap.josm.tools.Logging;
+import org.openstreetmap.josm.tools.I18n;
 
 public final class JsonStreetsideDecoder {
+
+  final static Logger logger = Logger.getLogger(JsonStreetsideDecoder.class);
+
   private JsonStreetsideDecoder() {
     // Private constructor to avoid instantiation
@@ -92,5 +96,5 @@
    * @return the point in time as a {@link Long} value representing the UNIX epoch time, or <code>null</code> if the
    *   parameter does not match the required format (this also triggers a warning via
-   *   {@link Logging#warn(Throwable)}), or the parameter is <code>null</code>.
+   *   {@link logger#warn(Throwable)}), or the parameter is <code>null</code>.
    */
   static Long decodeTimestamp(final String timestamp) {
@@ -100,8 +104,8 @@
       } catch (ParseException e) {
         StackTraceElement calledBy = e.getStackTrace()[Math.min(e.getStackTrace().length - 1, 2)];
-        Logging.log(Logging.LEVEL_WARN,String.format(
+        logger.warn(I18n.tr(String.format(
           "Could not decode time from the timestamp `%s` (called by %s.%s:%d)",
           timestamp, calledBy.getClassName(), calledBy.getMethodName(), calledBy.getLineNumber()
-        ), e);
+        ), e));
       }
     }
