Skip to content

Commit

Permalink
Make it possible to skip logging before the actual call
Browse files Browse the repository at this point in the history
  • Loading branch information
hmpf committed Mar 7, 2024
1 parent f92920c commit 65ff710
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
17 changes: 17 additions & 0 deletions python/nav/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -535,3 +535,20 @@ def resource_bytes(package, filename):
"""
ref = resource_files(package) / filename
return ref.read_bytes()


def check_log_level(logger, loglevel):
"""
Check that the level of the logger is equal to or below loglevel
Use before possibly expensive logging operations, like calling logging in
a loop or building an expensive object that will be logged and thrown away.
Avoid this classic mistake:
logger.info("%s", expensive_function())
"""
level = logger.getEffectiveLevel()
if level <= loglevel:
return True
return False
7 changes: 7 additions & 0 deletions python/nav/web/auth/remote_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,13 @@
from os.path import join
import secrets

from django.conf import settings

from nav.auditlog.models import LogEntry
from nav.config import NAVConfigParser
from nav.models.profiles import Account
from nav.web.auth.utils import set_account
from nav.util import check_log_level


__all__ = []
Expand Down Expand Up @@ -178,6 +181,10 @@ def get_username(request):
if not request:
return None

if settings.DEBUG or check_log_level(_logger, logging.DEBUG):
for metakey, value in request.META.items():
if metakey[0] == metakey[0].upper():
_logger.debug('%s: %s', metakey, value)
workaround = 'none'
try:
workaround_config = _config.get('remote-user', 'workaround')
Expand Down

0 comments on commit 65ff710

Please sign in to comment.