Skip to content

Commit

Permalink
Merge pull request #219 from geometalab/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
mnboos authored Feb 21, 2019
2 parents 68d9221 + e3f9899 commit 1ca7e06
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 18 deletions.
4 changes: 3 additions & 1 deletion metadata.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ about=Plugin which reads vector tiles according to Mapbox' Vector Tiles specific
* OpenMapTiles.com with OSM Bright MB GL style (default)
* Mapcat.com with Mapcat style
This Python plugin uses prebuilt C++ binaries for performance reasons.
version=2.0.4
version=2.0.5
author=Martin Boos
email=geometalab@gmail.com

Expand All @@ -22,6 +22,8 @@ email=geometalab@gmail.com

# Uncomment the following line and add your changelog:
changelog=
---2.0.5---
* Bugfix: Logging fixed for QGIS 3
---2.0.4---
* Bugfix: 'Refresh' button working again
* Bugfix: Warning about tile limit works now in both QGIS 2 and 3
Expand Down
51 changes: 35 additions & 16 deletions util/log_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import importlib
import tempfile
import re
from .vtr_2to3 import QGIS3

_KEY_REGEX = re.compile(r"(\?|&)(api_)?key=[^\s?&]*")

Expand Down Expand Up @@ -59,8 +60,8 @@ def _log_message(msg, level, *args):

_log_to_qgis(msg, level)
except:
_logger.info("Unexpected error during logging: {}", sys.exc_info()[1])
_logger.info("Original message: '{}', params: '{}'", args)
_logger.error("Unexpected error during logging: {}", sys.exc_info()[1])
_logger.error("Original message: '{}', params: '{}'", args)


def _import_qgis():
Expand All @@ -72,32 +73,50 @@ def _import_qgis():
def _log_to_qgis(msg, level):
qgis = _import_qgis()
if not qgis:
_logger.error("QGIS not found for logging")
return

qgis_level = None
if level == _DEBUG:
pass
elif level == _INFO:
qgis_level = qgis.QgsMessageLog.INFO
elif level == _WARN:
qgis_level = qgis.QgsMessageLog.WARNING
elif level == _CRITICAL:
qgis_level = qgis.QgsMessageLog.CRITICAL

if qgis_level is not None:
qgis.QgsMessageLog.logMessage(msg, 'Vector Tile Reader', qgis_level)
if QGIS3:
if level != _DEBUG:
qgis.QgsMessageLog.logMessage(msg, 'Vector Tiles Reader'.format(level))
else:
qgis_level = None
if level == _DEBUG:
pass
elif level == _INFO:
qgis_level = qgis.QgsMessageLog.INFO
elif level == _WARN:
qgis_level = qgis.QgsMessageLog.WARNING
elif level == _CRITICAL:
qgis_level = qgis.QgsMessageLog.CRITICAL

if qgis_level is not None:
qgis.QgsMessageLog.logMessage(msg, 'Vector Tiles Reader', qgis_level)

try:
log_path = get_temp_dir("log.txt")
temp_dir = os.path.dirname(log_path)

max_logsize_mb = 4
if os.path.isfile(log_path) and os.stat(log_path).st_size >= max_logsize_mb*1024*1024:
os.remove(log_path)

if not os.path.isfile(log_path):
open(log_path, 'a').close()

from imp import reload
reload(logging)

logging.basicConfig(
filename=log_path,
filemode='a',
level=logging.INFO,
format="[%(asctime)s] [%(threadName)-12s] [%(levelname)-8s] %(message)s")

# fh = logging.FileHandler(os.path.join(temp_dir, "bla.log"))
_logger = logging.getLogger()
# _logger.setLevel(logging.INFO)
# _logger.addHandler(fh)
except IOError:
_log_to_qgis("Creating logging config failed: {}".format(sys.exc_info()), _WARN)


_logger = logging.getLogger("Vector-Tile-Reader")
4 changes: 3 additions & 1 deletion vtr_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import sys
import traceback
import ast
import platform

from builtins import map
from builtins import str
Expand Down Expand Up @@ -97,6 +98,8 @@ def __init__(self, iface):
iface.newProjectCreated.connect(self._on_project_change)
iface.projectRead.connect(self._on_project_change)
QgsMapLayerRegistry.instance().layersWillBeRemoved.connect(self._on_remove)
python_version = platform.python_version()
info("Vector Tiles Reader (Python {})".format(python_version))
self._add_path_to_dependencies_to_syspath()
self.settings = QSettings("Vector Tile Reader", "vectortilereader")
self._clear_cache_when_version_changed()
Expand Down Expand Up @@ -180,7 +183,6 @@ def initGui(self):
self.iface.addPluginToVectorMenu("&Vector Tiles Reader", self.reload_action)
self.iface.addPluginToVectorMenu("&Vector Tiles Reader", self.clear_cache_action)
self.iface.addPluginToVectorMenu("&Vector Tiles Reader", self.about_action)
info("Vector Tiles Reader Plugin loaded...")
self._connect_to_first_source()

def _connect_to_first_source(self):
Expand Down

0 comments on commit 1ca7e06

Please sign in to comment.