mirror of
https://github.com/viq/NewsBlur.git
synced 2025-04-13 09:38:09 +00:00
Logging tweaks to handle console and file handlers.
This commit is contained in:
parent
fcca02717f
commit
588207384c
11 changed files with 59 additions and 38 deletions
|
@ -117,8 +117,7 @@ class UserSubscription(models.Model):
|
|||
self.save()
|
||||
|
||||
if (self.unread_count_positive == 0 and
|
||||
self.unread_count_neutral == 0 and
|
||||
self.unread_count_negative == 0):
|
||||
self.unread_count_neutral == 0):
|
||||
self.mark_feed_read()
|
||||
|
||||
cache.delete('usersub:%s' % self.user.id)
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
import logging
|
||||
import datetime
|
||||
import random
|
||||
from django.shortcuts import render_to_response, get_object_or_404
|
||||
|
@ -25,6 +24,7 @@ except:
|
|||
from utils import json, urlnorm
|
||||
from utils.user_functions import get_user, ajax_login_required
|
||||
from utils.feed_functions import fetch_address_from_page, format_relative_date
|
||||
from utils import log as logging
|
||||
|
||||
SINGLE_DAY = 60*60*24
|
||||
|
||||
|
@ -281,11 +281,17 @@ def load_single_feed(request):
|
|||
def load_feed_page(request):
|
||||
feed = get_object_or_404(Feed, id=request.REQUEST.get('feed_id'))
|
||||
feed_page, created = FeedPage.objects.get_or_create(feed=feed)
|
||||
data = None
|
||||
|
||||
if not created:
|
||||
data = feed.feed_page.page_data
|
||||
if created or not data:
|
||||
|
||||
if created:
|
||||
data = "Give it 5-10 minutes...<br /><br />Your feed will be here in under 5 minutes (on average).<br />Soon there will be a progress bar. Until then, take a deep breath."
|
||||
|
||||
if not data:
|
||||
data = "There is something wrong with this feed. In the next week, there will be a way to correct this error."
|
||||
|
||||
return HttpResponse(data, mimetype='text/html')
|
||||
|
||||
|
||||
|
|
|
@ -4,8 +4,8 @@ from apps.rss_feeds.models import Feed, Story
|
|||
from django.core.cache import cache
|
||||
from apps.reader.models import UserSubscription, UserStory
|
||||
from optparse import OptionParser, make_option
|
||||
from utils import log as logging
|
||||
import os
|
||||
import logging
|
||||
import errno
|
||||
import re
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@ from django.core.cache import cache
|
|||
from apps.reader.models import UserSubscription, UserStory
|
||||
from optparse import OptionParser, make_option
|
||||
import os
|
||||
import logging
|
||||
import errno
|
||||
import re
|
||||
import datetime
|
||||
|
|
|
@ -7,7 +7,6 @@ from apps.reader.models import UserSubscription, UserStory
|
|||
from optparse import OptionParser, make_option
|
||||
from utils.management_functions import daemonize
|
||||
import os
|
||||
import logging
|
||||
import errno
|
||||
|
||||
class Command(BaseCommand):
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
from django.core.management.base import BaseCommand
|
||||
from django.core.handlers.wsgi import WSGIHandler
|
||||
from apps.rss_feeds.models import Feed, Story
|
||||
from optparse import OptionParser, make_option
|
||||
from django.conf import settings
|
||||
from apps.rss_feeds.models import Feed
|
||||
from optparse import make_option
|
||||
from utils import feed_fetcher
|
||||
from utils.management_functions import daemonize
|
||||
import logging
|
||||
import socket
|
||||
import os
|
||||
import math
|
||||
import datetime
|
||||
|
||||
|
||||
|
@ -28,6 +25,8 @@ class Command(BaseCommand):
|
|||
if options['daemonize']:
|
||||
daemonize()
|
||||
|
||||
settings.LOG_TO_STREAM = True
|
||||
|
||||
socket.setdefaulttimeout(options['timeout'])
|
||||
now = datetime.datetime.now()
|
||||
feeds = Feed.objects.filter(next_scheduled_update__lte=now)#.order_by('?')
|
||||
|
@ -48,8 +47,6 @@ class Command(BaseCommand):
|
|||
i += 1
|
||||
disp.add_jobs(feeds_queue, i)
|
||||
|
||||
print "Running jobs..."
|
||||
print " ---> Fetching %s feeds..." % feeds.count()
|
||||
disp.run_jobs()
|
||||
|
||||
print "Polling..."
|
||||
disp.poll()
|
|
@ -5,7 +5,6 @@ from django.core.cache import cache
|
|||
from apps.rss_feeds.models import Feed
|
||||
from optparse import OptionParser, make_option
|
||||
import os
|
||||
import logging
|
||||
import errno
|
||||
|
||||
class Command(BaseCommand):
|
||||
|
|
|
@ -188,7 +188,7 @@ NEWSBLUR.ReaderStatistics.prototype = {
|
|||
legend: { show: false },
|
||||
grid: { hoverable: true, clickable: true },
|
||||
yaxis: { tickDecimals: 0, min: 0 },
|
||||
xaxis: { mode: 'time' }
|
||||
xaxis: { mode: 'time', minTickSize: [1, 'month'], timeformat: '%b %y' }
|
||||
});
|
||||
},
|
||||
|
||||
|
|
25
settings.py
25
settings.py
|
@ -1,6 +1,7 @@
|
|||
import sys
|
||||
import logging
|
||||
import os
|
||||
from utils import log
|
||||
|
||||
# ===========================
|
||||
# = Directory Declaractions =
|
||||
|
@ -156,23 +157,6 @@ DEBUG_TOOLBAR_PANELS = (
|
|||
'debug_toolbar.panels.logger.LoggingPanel',
|
||||
)
|
||||
|
||||
# ===========
|
||||
# = Logging =
|
||||
# ===========
|
||||
|
||||
if len(logging._handlerList) < 1:
|
||||
if PRODUCTION:
|
||||
logging.basicConfig(level=logging.INFO,
|
||||
format='%(asctime)-12s: %(message)s',
|
||||
datefmt='%b %d %H:%M',
|
||||
filename=LOG_FILE,
|
||||
filemode='a')
|
||||
else:
|
||||
logging.basicConfig(level=logging.DEBUG,
|
||||
format='%(asctime)-12s: %(message)s',
|
||||
datefmt='%b %d %H:%M',
|
||||
handler=logging.StreamHandler)
|
||||
|
||||
# ==========================
|
||||
# = Miscellaneous Settings =
|
||||
# ==========================
|
||||
|
@ -186,6 +170,13 @@ APPEND_SLASH = True
|
|||
SOUTH_TESTS_MIGRATE = False
|
||||
SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"
|
||||
|
||||
# ===========
|
||||
# = Logging =
|
||||
# ===========
|
||||
|
||||
LOG_LEVEL = logging.DEBUG
|
||||
LOG_TO_STREAM = False
|
||||
|
||||
# ===============
|
||||
# = Django Apps =
|
||||
# ===============
|
||||
|
|
|
@ -12,9 +12,9 @@ from django.db.models import Q
|
|||
from django.db import IntegrityError
|
||||
from utils.story_functions import pre_process_story
|
||||
from utils.feed_functions import fetch_address_from_page
|
||||
from utils import log as logging
|
||||
import sys
|
||||
import time
|
||||
import logging
|
||||
import datetime
|
||||
import traceback
|
||||
import multiprocessing
|
||||
|
@ -94,7 +94,7 @@ class ProcessFeed:
|
|||
ENTRY_SAME:0,
|
||||
ENTRY_ERR:0}
|
||||
|
||||
logging.debug(u'[%d] Processing %s' % (self.feed.id,
|
||||
logging.debug(u' ---> [%d] Processing %s' % (self.feed.id,
|
||||
self.feed.feed_title))
|
||||
|
||||
if hasattr(self.fpf, 'status'):
|
||||
|
@ -262,7 +262,6 @@ class Dispatcher:
|
|||
if ret_entries.get(ENTRY_NEW):
|
||||
user_subs = UserSubscription.objects.filter(feed=feed)
|
||||
for sub in user_subs:
|
||||
logging.debug('Deleting user sub cache: %s' % sub.user_id)
|
||||
cache.delete('usersub:%s' % sub.user_id)
|
||||
sub.calculate_feed_scores(silent=True)
|
||||
if ret_entries.get(ENTRY_NEW) or ret_entries.get(ENTRY_UPDATED):
|
||||
|
|
32
utils/log.py
Normal file
32
utils/log.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
import logging
|
||||
from django.conf import settings
|
||||
|
||||
def getlogger():
|
||||
root_logger = logging.getLogger('newsblur')
|
||||
if len(root_logger.handlers) >= 1:
|
||||
return root_logger
|
||||
|
||||
logger = logging.getLogger('newsblur')
|
||||
if settings.LOG_TO_STREAM:
|
||||
hdlr = logging.StreamHandler()
|
||||
else:
|
||||
hdlr = logging.FileHandler(settings.LOG_FILE)
|
||||
formatter = logging.Formatter('[%(asctime)-12s] %(message)s','%b %d %H:%M')
|
||||
|
||||
hdlr.setFormatter(formatter)
|
||||
logger.addHandler(hdlr)
|
||||
logger.setLevel(settings.LOG_LEVEL)
|
||||
|
||||
return logger
|
||||
|
||||
def debug(msg):
|
||||
logger = getlogger()
|
||||
logger.debug(msg)
|
||||
|
||||
def info(msg):
|
||||
logger = getlogger()
|
||||
logger.info(msg)
|
||||
|
||||
def error(msg):
|
||||
logger = getlogger()
|
||||
logger.error(msg)
|
Loading…
Add table
Reference in a new issue