Skip to content

Commit 10c553a

Browse files
committed
Add proper loggin, remove timeout, send console log with error
1 parent 89d8a43 commit 10c553a

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

webpack_loader/loader.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
import json
22
import time
3+
import logging
34

45
from django.conf import settings
56
from django.contrib.staticfiles.storage import staticfiles_storage
67

78
from .exceptions import WebpackError, WebpackLoaderBadStatsError
89
from .config import load_config
910

11+
logger = logging.getLogger('webpack_loader')
12+
1013

1114
class WebpackLoader(object):
1215
_assets = {}
@@ -52,13 +55,18 @@ def get_chunk_url(self, chunk):
5255

5356
def get_bundle(self, bundle_name):
5457
assets = self.get_assets()
58+
logger.debug("[{}][{}] get_bundle".format(
59+
bundle_name, assets.get('status')))
5560

5661
if settings.DEBUG:
57-
# poll when debugging and block request until bundle is compiled
58-
# TODO: support timeouts
59-
while assets['status'] == 'compiling':
60-
time.sleep(self.config['POLL_INTERVAL'])
61-
assets = self.get_assets()
62+
if assets['status'] == 'compiling':
63+
if 'file' not in assets:
64+
assets['file'] = ''
65+
66+
error = u"{file} is compiling ".format(**assets)
67+
logger.error("[{}][ERROR] {}".format(
68+
bundle_name, error))
69+
raise IOError(error)
6270

6371
if assets.get('status') == 'done':
6472
chunks = assets['chunks'][bundle_name]

webpack_loader/templatetags/webpack_loader.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
from django import template
22
from django.conf import settings
33
from django.utils.safestring import mark_safe
4+
import logging
45

56
from ..utils import get_loader
67

78
register = template.Library()
8-
9+
logger = logging.getLogger('webpack_loader')
910

1011
def filter_by_extension(bundle, extension):
1112
'''Return only files with the given extension'''
@@ -37,9 +38,13 @@ def _get_bundle(bundle_name, extension, config):
3738

3839
@register.simple_tag
3940
def render_bundle(bundle_name, extension=None, config='DEFAULT'):
41+
logger.info("[{}] is called for rendering".format(bundle_name))
4042
try:
4143
return render_as_tags(_get_bundle(bundle_name, extension, config))
4244
except (IOError, KeyError) as e:
45+
logger.error("[{}] failed rendering, reason: {}".format(
46+
bundle_name, e)
47+
)
4348
return '<script>console.error("{} - {}");</script>'.format(
4449
bundle_name,
4550
e

0 commit comments

Comments
 (0)