[Repoze-checkins] r942 - repoze.who/trunk/repoze/who

Tres Seaver tseaver at palladion.com
Sat May 3 19:11:27 EDT 2008


Author: Tres Seaver <tseaver at palladion.com>
Date: Sat May  3 19:11:27 2008
New Revision: 942

Log:
Enable logging via config.

Modified:
   repoze.who/trunk/repoze/who/config.py

Modified: repoze.who/trunk/repoze/who/config.py
==============================================================================
--- repoze.who/trunk/repoze/who/config.py	(original)
+++ repoze.who/trunk/repoze/who/config.py	Sat May  3 19:11:27 2008
@@ -2,7 +2,9 @@
 """
 from ConfigParser import ConfigParser
 from StringIO import StringIO
+import logging
 from pkg_resources import EntryPoint
+import sys
 
 from repoze.who.interfaces import IAuthenticator
 from repoze.who.interfaces import IChallengeDecider
@@ -121,9 +123,29 @@
                                      )
 
 
-def make_middleware_with_config(app, global_conf, config_file):
+_LEVELS = {'debug': logging.DEBUG,
+           'info': logging.INFO,
+           'warning': logging.WARNING,
+           'error': logging.ERROR,
+          }
+
+def make_middleware_with_config(app, global_conf, config_file,
+                                log_file=None, log_level=None):
     parser = WhoConfig(global_conf['here'])
     parser.parse(open(config_file))
+    log_stream = None
+
+    if log_file is not None:
+        if log_file == '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 PluggableAuthenticationMiddleware(
                 app,
                 parser.identifiers,
@@ -132,4 +154,5 @@
                 parser.mdproviders,
                 parser.request_classifier,
                 parser.challenge_decider,
+                log_stream,
            )


More information about the Repoze-checkins mailing list