From 270ed5e2f84a4197410ed5492c9b1d3db512fc26 Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 21 Jun 2023 17:42:25 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9=20logging=20?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/api/category.py | 7 +++---- apps/assets/models/group.py | 3 --- apps/common/api/filter.py | 6 +++++- apps/common/drf/filters.py | 6 ++++-- apps/common/signal_handlers.py | 9 ++++----- apps/jumpserver/settings/logging.py | 4 ++-- apps/ops/celery/signal_handler.py | 4 ++-- apps/perms/models/asset_permission.py | 12 ++++++------ apps/users/utils.py | 10 +++++----- requirements/requirements.txt | 4 ++-- 10 files changed, 33 insertions(+), 32 deletions(-) diff --git a/apps/assets/api/category.py b/apps/assets/api/category.py index 8c14e352d..b6ec6790b 100644 --- a/apps/assets/api/category.py +++ b/apps/assets/api/category.py @@ -1,11 +1,11 @@ -from rest_framework.mixins import ListModelMixin from rest_framework.decorators import action +from rest_framework.mixins import ListModelMixin from rest_framework.response import Response +from assets.const import AllTypes +from assets.serializers import CategorySerializer, TypeSerializer from common.api import JMSGenericViewSet from common.permissions import IsValidUser -from assets.serializers import CategorySerializer, TypeSerializer -from assets.const import AllTypes __all__ = ['CategoryViewSet'] @@ -32,4 +32,3 @@ class CategoryViewSet(ListModelMixin, JMSGenericViewSet): tp = request.query_params.get('type') constraints = AllTypes.get_constraints(category, tp) return Response(constraints) - diff --git a/apps/assets/models/group.py b/apps/assets/models/group.py index ee5472622..02db7f41f 100644 --- a/apps/assets/models/group.py +++ b/apps/assets/models/group.py @@ -7,12 +7,9 @@ from __future__ import unicode_literals import uuid from django.db import models -import logging from django.utils.translation import ugettext_lazy as _ - __all__ = ['AssetGroup'] -logger = logging.getLogger(__name__) class AssetGroup(models.Model): diff --git a/apps/common/api/filter.py b/apps/common/api/filter.py index c0307dd59..56c3e6483 100644 --- a/apps/common/api/filter.py +++ b/apps/common/api/filter.py @@ -10,6 +10,8 @@ from common.drf.filters import IDSpmFilter, CustomFilter, IDInFilter __all__ = ['ExtraFilterFieldsMixin', 'OrderingFielderFieldsMixin'] +logger = logging.getLogger('jumpserver.common') + class ExtraFilterFieldsMixin: """ @@ -54,7 +56,9 @@ class OrderingFielderFieldsMixin: try: valid_fields = self.get_valid_ordering_fields() except Exception as e: - logging.debug('get_valid_ordering_fields error: %s' % e) + logger.debug('get_valid_ordering_fields error: %s' % e) + # 这里千万不要这么用,会让 logging 重复,至于为什么,我也不知道 + # logging.debug('get_valid_ordering_fields error: %s' % e) valid_fields = [] fields = list(chain( diff --git a/apps/common/drf/filters.py b/apps/common/drf/filters.py index bac14190e..c44874fd5 100644 --- a/apps/common/drf/filters.py +++ b/apps/common/drf/filters.py @@ -14,6 +14,8 @@ from rest_framework.serializers import ValidationError from common import const +logger = logging.getLogger('jumpserver.common') + __all__ = [ "DatetimeRangeFilter", "IDSpmFilter", 'IDInFilter', "CustomFilter", @@ -70,7 +72,7 @@ class DatetimeRangeFilter(filters.BaseFilterBackend): ] ``` """.format(view.name) - logging.error(msg) + logger.error(msg) raise ImproperlyConfigured(msg) def filter_queryset(self, request, queryset, view): @@ -213,6 +215,6 @@ class AttrRulesFilterBackend(filters.BaseFilterBackend): except Exception: raise ValidationError({'attr_rules': 'attr_rules should be json'}) - logging.debug('attr_rules: %s', attr_rules) + logger.debug('attr_rules: %s', attr_rules) q = RelatedManager.get_to_filter_q(attr_rules, queryset.model) return queryset.filter(q).distinct() diff --git a/apps/common/signal_handlers.py b/apps/common/signal_handlers.py index b7acf6e79..df2019b60 100644 --- a/apps/common/signal_handlers.py +++ b/apps/common/signal_handlers.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- # -import logging import os import re from collections import defaultdict @@ -14,9 +13,10 @@ from django.dispatch import receiver from jumpserver.utils import get_current_request from .local import thread_local from .signals import django_ready +from .utils import get_logger pattern = re.compile(r'FROM `(\w+)`') -logger = logging.getLogger("jumpserver.common") +logger = get_logger(__name__) class Counter: @@ -129,7 +129,6 @@ else: @receiver(django_ready) def check_migrations_file_prefix_conflict(*args, **kwargs): - if not settings.DEBUG_DEV: return @@ -172,7 +171,7 @@ def check_migrations_file_prefix_conflict(*args, **kwargs): if not conflict_count: return - print('='*80) + print('=' * 80) for conflict_file in conflict_files: msg_dir = '{:<15}'.format(conflict_file[0]) msg_split = '=> ' @@ -181,4 +180,4 @@ def check_migrations_file_prefix_conflict(*args, **kwargs): msg_right2 = ' ' * len(msg_left) + msg_split + conflict_file[2] print(f'{msg_left}{msg_right1}\n{msg_right2}\n') - print('='*80) + print('=' * 80) diff --git a/apps/jumpserver/settings/logging.py b/apps/jumpserver/settings/logging.py index a021d1716..8dae9e371 100644 --- a/apps/jumpserver/settings/logging.py +++ b/apps/jumpserver/settings/logging.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- # import os + from ..const import PROJECT_DIR, CONFIG LOG_DIR = os.path.join(PROJECT_DIR, 'logs') @@ -105,7 +106,7 @@ LOGGING = { 'propagate': False, }, 'jumpserver': { - 'handlers': ['console', 'file'], + 'handlers': ['console'], 'level': LOG_LEVEL, }, 'drf_exception': { @@ -132,7 +133,6 @@ LOGGING = { 'handlers': ['null'], 'level': 'ERROR' } - } } diff --git a/apps/ops/celery/signal_handler.py b/apps/ops/celery/signal_handler.py index 5ca29f7ba..17455fe96 100644 --- a/apps/ops/celery/signal_handler.py +++ b/apps/ops/celery/signal_handler.py @@ -2,11 +2,11 @@ # import logging -from django.core.cache import cache from celery import subtask from celery.signals import ( worker_ready, worker_shutdown, after_setup_logger ) +from django.core.cache import cache from django_celery_beat.models import PeriodicTask from common.utils import get_logger @@ -46,6 +46,6 @@ def add_celery_logger_handler(sender=None, logger=None, loglevel=None, format=No return task_handler = CeleryThreadTaskFileHandler() task_handler.setLevel(loglevel) - formatter = logging.Formatter(format) + formatter = logging.Formatter('abc: ' + format) task_handler.setFormatter(formatter) logger.addHandler(task_handler) diff --git a/apps/perms/models/asset_permission.py b/apps/perms/models/asset_permission.py index c17a67acb..08484e88e 100644 --- a/apps/perms/models/asset_permission.py +++ b/apps/perms/models/asset_permission.py @@ -5,20 +5,20 @@ from django.db.models import Q from django.utils import timezone from django.utils.translation import ugettext_lazy as _ -from users.models import User -from assets.models import Asset +from accounts.const import AliasAccount from accounts.models import Account -from orgs.mixins.models import JMSOrgBaseModel -from orgs.mixins.models import OrgManager +from assets.models import Asset from common.utils import date_expired_default from common.utils.timezone import local_now +from orgs.mixins.models import JMSOrgBaseModel +from orgs.mixins.models import OrgManager from perms.const import ActionChoices -from accounts.const import AliasAccount +from users.models import User __all__ = ['AssetPermission', 'ActionChoices', 'AssetPermissionQuerySet'] # 使用场景 -logger = logging.getLogger(__name__) +logger = logging.getLogger('jumpserver.permissions') class AssetPermissionQuerySet(models.QuerySet): diff --git a/apps/users/utils.py b/apps/users/utils.py index 55ebd1aa1..29ce56cd1 100644 --- a/apps/users/utils.py +++ b/apps/users/utils.py @@ -1,20 +1,20 @@ # ~*~ coding: utf-8 ~*~ # -import os -import re -import pyotp import base64 import logging +import os +import re import time +import pyotp from django.conf import settings from django.core.cache import cache from common.tasks import send_mail_async -from common.utils import reverse, get_object_or_none, ip, pretty_string +from common.utils import reverse, get_object_or_none, ip from .models import User -logger = logging.getLogger('jumpserver') +logger = logging.getLogger('jumpserver.users') def send_user_created_mail(user): diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 33bc01dbe..df532adf3 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -16,7 +16,7 @@ ecdsa==0.13.3 enum-compat==0.0.2 ephem==3.7.6.0 future==0.16.0 -idna==2.6 +idna==2.8 itypes==1.2.0 Jinja2==3.1.2 jmespath==1.0.1 @@ -37,7 +37,7 @@ PyNaCl==1.5.0 python-dateutil==2.8.2 PyYAML==6.0 requests==2.31.0 -jms-storage==0.0.46 +jms-storage==0.0.47 simplejson==3.17.6 six==1.16.0 sshtunnel==0.4.0