Setup logging for background tasks

This commit is contained in:
Sascha Ißbrücker 2022-09-11 07:50:08 +02:00
parent 1b35d5b5ef
commit b94eaee833
3 changed files with 39 additions and 9 deletions

View file

@ -29,28 +29,28 @@ def create_web_archive_snapshot(user: User, bookmark: Bookmark, force_update: bo
def _load_newest_snapshot(bookmark: Bookmark): def _load_newest_snapshot(bookmark: Bookmark):
try: try:
logger.debug(f'Load existing snapshot for bookmark. url={bookmark.url}') logger.info(f'Load existing snapshot for bookmark. url={bookmark.url}')
cdx_api = bookmarks.services.wayback.CustomWaybackMachineCDXServerAPI(bookmark.url) cdx_api = bookmarks.services.wayback.CustomWaybackMachineCDXServerAPI(bookmark.url)
existing_snapshot = cdx_api.newest() existing_snapshot = cdx_api.newest()
if existing_snapshot: if existing_snapshot:
bookmark.web_archive_snapshot_url = existing_snapshot.archive_url bookmark.web_archive_snapshot_url = existing_snapshot.archive_url
bookmark.save() bookmark.save()
logger.debug(f'Using newest snapshot. url={bookmark.url} from={existing_snapshot.datetime_timestamp}') logger.info(f'Using newest snapshot. url={bookmark.url} from={existing_snapshot.datetime_timestamp}')
except NoCDXRecordFound: except NoCDXRecordFound:
logger.error(f'Could not find any snapshots for bookmark. url={bookmark.url}') logger.info(f'Could not find any snapshots for bookmark. url={bookmark.url}')
except WaybackError as error: except WaybackError as error:
logger.error(f'Failed to load existing snapshot. url={bookmark.url}', exc_info=error) logger.error(f'Failed to load existing snapshot. url={bookmark.url}', exc_info=error)
def _create_snapshot(bookmark: Bookmark): def _create_snapshot(bookmark: Bookmark):
logger.debug(f'Create new snapshot for bookmark. url={bookmark.url}...') logger.info(f'Create new snapshot for bookmark. url={bookmark.url}...')
archive = waybackpy.WaybackMachineSaveAPI(bookmark.url, DEFAULT_USER_AGENT, max_tries=1) archive = waybackpy.WaybackMachineSaveAPI(bookmark.url, DEFAULT_USER_AGENT, max_tries=1)
archive.save() archive.save()
bookmark.web_archive_snapshot_url = archive.archive_url bookmark.web_archive_snapshot_url = archive.archive_url
bookmark.save() bookmark.save()
logger.debug(f'Successfully created new snapshot for bookmark:. url={bookmark.url}') logger.info(f'Successfully created new snapshot for bookmark:. url={bookmark.url}')
@background() @background()
@ -71,8 +71,8 @@ def _create_web_archive_snapshot_task(bookmark_id: int, force_update: bool):
except TooManyRequestsError: except TooManyRequestsError:
logger.error( logger.error(
f'Failed to create snapshot due to rate limiting, trying to load newest snapshot as fallback. url={bookmark.url}') f'Failed to create snapshot due to rate limiting, trying to load newest snapshot as fallback. url={bookmark.url}')
except WaybackError: except WaybackError as error:
logger.error(f'Failed to create snapshot, trying to load newest snapshot as fallback. url={bookmark.url}') logger.error(f'Failed to create snapshot, trying to load newest snapshot as fallback. url={bookmark.url}', exc_info=error)
# Load the newest snapshot as fallback # Load the newest snapshot as fallback
_load_newest_snapshot(bookmark) _load_newest_snapshot(bookmark)

View file

@ -28,6 +28,35 @@ if host_name:
else: else:
ALLOWED_HOSTS = ['*'] ALLOWED_HOSTS = ['*']
# Logging
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'simple': {
'format': '{asctime} {levelname} {message}',
'style': '{',
},
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'simple'
}
},
'root': {
'handlers': ['console'],
'level': 'WARN',
},
'loggers': {
'bookmarks': {
'level': 'INFO',
'handlers': ['console'],
'propagate': False,
}
}
}
# Import custom settings # Import custom settings
# noinspection PyUnresolvedReferences # noinspection PyUnresolvedReferences
from .custom import * from .custom import *

View file

@ -5,6 +5,7 @@ loglevel=info
[program:jobs] [program:jobs]
user=www-data user=www-data
command=sh background-tasks-wrapper.sh command=sh background-tasks-wrapper.sh
stdout_logfile=/dev/stdout stdout_logfile=background_tasks.log
stdout_logfile_maxbytes=0 stdout_logfile_maxbytes=10MB
stdout_logfile_backups=5
redirect_stderr=true redirect_stderr=true