Created
September 6, 2022 00:21
-
-
Save alanhamlett/365d48276ac054ae75e595256a7814f7 to your computer and use it in GitHub Desktop.
WakaQ example worker error log handler
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from logging import getLogger, ERROR, Formatter, Filter | |
from logging.handlers import WatchedFileHandler | |
from wakatime import app | |
from wakatime.background import wakaq | |
TASK_LOG_FORMAT = '[%(asctime)s] %(hostname)s %(levelname)s in %(task)s args=%(task_args)s kwargs=%(task_kwargs)s retry=%(task_retry)s: %(message)s' | |
class TaskFilter(Filter): | |
def filter(self, record): | |
record.hostname = u(app.config.get('HOSTNAME', 'UnknownHost')) | |
return True | |
error_handler = WatchedFileHandler(app.config['ERROR_HANDLER_LOG'], delay=True) | |
error_handler.setLevel(ERROR) | |
@wakaq.after_worker_started | |
def after_worker_started(): | |
error_handler.addFilter(TaskFilter()) | |
error_handler.setFormatter(Formatter(TASK_LOG_FORMAT)) | |
logger = getLogger("wakaq") | |
logger.addHandler(error_handler) | |
@wakaq.wrap_tasks_with | |
def custom_task_decorator(fn): | |
def inner(*args, **kwargs): | |
with app.app_context(): | |
return fn(*args, **kwargs) | |
return inner |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment