Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save westurner/233377 to your computer and use it in GitHub Desktop.
Save westurner/233377 to your computer and use it in GitHub Desktop.
# HG changeset patch
# User Wes Turner <wes.turner@gmail.com>
# Date 1258065100 21600
# Node ID 706e866c5e2df95c80f4e0bf4d182604140fade2
# Parent 2fd12cda91b470058b197781348541b856dee6ec
[mq]: accept_log_configuration
diff --git a/repoze/what/plugins/config.py b/repoze/what/plugins/config.py
--- a/repoze/what/plugins/config.py
+++ b/repoze/what/plugins/config.py
@@ -7,7 +7,8 @@
from pkg_resources import EntryPoint
from repoze.who.config import WhoConfig
from repoze.what.middleware import setup_auth
-
+import sys
+import logging
class WhatConfig:
def __init__(self, here):
@@ -49,9 +50,15 @@
self._parsePluginSequence(self.permission_adapters,
what['permission_adapters'])
+_LEVELS = {'debug': logging.DEBUG,
+ 'info': logging.INFO,
+ 'warning': logging.WARNING,
+ 'error': logging.ERROR,
+ }
def make_middleware_with_config(app, global_conf, config_file,
- who_config_file = ''):
+ who_config_file = '',
+ log_file=None, log_level=None):
if not who_config_file:
who_config_file = config_file
who_parser = WhoConfig(global_conf['here'])
@@ -59,6 +66,19 @@
what_parser = WhatConfig(global_conf['here'])
what_parser.parse(open(config_file))
+ log_stream = None
+
+ if log_file is not None:
+ if log_file.lower() == 'stdout':
+ log_stream = sys.stdout
+ else:
+ log_stream = open(log_file, 'wb')
+
+ if log_level is None:
+ log_level = logging.INFO
+ else:
+ log_level = _LEVELS[log_level.lower()]
+
return setup_auth(app,
group_adapters=what_parser.group_adapters,
permission_adapters=what_parser.permission_adapters,
@@ -67,6 +87,9 @@
challengers=who_parser.challengers,
mdproviders=who_parser.mdproviders,
classifier=who_parser.request_classifier,
- challenge_decider=who_parser.challenge_decider
+ challenge_decider=who_parser.challenge_decider,
+ log_stream = log_stream,
+ log_level = log_level,
+ remote_user_key = who_parser.remote_user_key,
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment