diff --git a/apps/common/utils.py b/apps/common/utils.py index 2668c2ff2..85f47ae00 100644 --- a/apps/common/utils.py +++ b/apps/common/utils.py @@ -69,13 +69,13 @@ class Signer(metaclass=Singleton): self.secret_key = secret_key def sign(self, value): - s = JSONWebSignatureSerializer(self.secret_key) + s = JSONWebSignatureSerializer(self.secret_key, algorithm_name='HS256') return s.dumps(value).decode() def unsign(self, value): if value is None: return value - s = JSONWebSignatureSerializer(self.secret_key) + s = JSONWebSignatureSerializer(self.secret_key, algorithm_name='HS256') try: return s.loads(value) except BadSignature: diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py index 227fa0f24..93d977149 100644 --- a/apps/jumpserver/settings.py +++ b/apps/jumpserver/settings.py @@ -26,6 +26,7 @@ CONFIG = load_user_config() LOG_DIR = os.path.join(PROJECT_DIR, 'logs') JUMPSERVER_LOG_FILE = os.path.join(LOG_DIR, 'jumpserver.log') ANSIBLE_LOG_FILE = os.path.join(LOG_DIR, 'ansible.log') +GUNICORN_LOG_FILE = os.path.join(LOG_DIR, 'gunicorn.log') if not os.path.isdir(LOG_DIR): os.makedirs(LOG_DIR) @@ -213,10 +214,21 @@ LOGGING = { 'ansible_logs': { 'encoding': 'utf8', 'level': 'DEBUG', - 'class': 'logging.FileHandler', + 'class': 'logging.handlers.RotatingFileHandler', 'formatter': 'main', + 'maxBytes': 1024*1024*100, + 'backupCount': 7, 'filename': ANSIBLE_LOG_FILE, }, + 'gunicorn_logs': { + 'encoding': 'utf8', + 'level': 'DEBUG', + 'class': 'logging.handlers.RotatingFileHandler', + 'formatter': 'main', + 'maxBytes': 1024*1024*100, + 'backupCount': 2, + 'filename': GUNICORN_LOG_FILE, + }, }, 'loggers': { 'django': { @@ -254,6 +266,10 @@ LOGGING = { 'handlers': ['console', 'file'], 'level': "INFO", }, + 'gunicorn': { + 'handlers': ['console', 'gunicorn_logs'], + 'level': LOG_LEVEL, + }, # 'django.db': { # 'handlers': ['console', 'file'], # 'level': 'DEBUG' @@ -428,7 +444,7 @@ CELERY_WORKER_LOG_FORMAT = '%(message)s' CELERY_TASK_EAGER_PROPAGATES = True CELERY_WORKER_REDIRECT_STDOUTS = True CELERY_WORKER_REDIRECT_STDOUTS_LEVEL = "INFO" -# CELERY_WORKER_HIJACK_ROOT_LOGGER = False +# CELERY_WORKER_HIJACK_ROOT_LOGGER = True CELERY_WORKER_MAX_TASKS_PER_CHILD = 40 # Cache use redis diff --git a/apps/ops/celery/signal_handler.py b/apps/ops/celery/signal_handler.py index af8e025fd..a9d9d454b 100644 --- a/apps/ops/celery/signal_handler.py +++ b/apps/ops/celery/signal_handler.py @@ -5,7 +5,7 @@ import logging from django.core.cache import cache from celery import subtask from celery.signals import ( - worker_ready, worker_shutdown, after_setup_logger + worker_ready, worker_shutdown, after_setup_logger, setup_logging ) from kombu.utils.encoding import safe_str from django_celery_beat.models import PeriodicTask @@ -45,8 +45,8 @@ def after_app_shutdown_periodic_tasks(sender=None, **kwargs): def add_celery_logger_handler(sender=None, logger=None, loglevel=None, format=None, **kwargs): if not logger: return - handler = CeleryTaskFileHandler() - handler.setLevel(loglevel) + task_handler = CeleryTaskFileHandler() + task_handler.setLevel(loglevel) formatter = logging.Formatter(format) - handler.setFormatter(formatter) - logger.addHandler(handler) + task_handler.setFormatter(formatter) + logger.addHandler(task_handler) diff --git a/jms b/jms index 0138df26a..dcf181f81 100755 --- a/jms +++ b/jms @@ -149,7 +149,6 @@ def start_gunicorn(): if DAEMON: cmd.extend([ - '--access-logfile', log_file, '--daemon', ]) else: