Changeset 5725

Show
Ignore:
Timestamp:
11/19/08 11:59:14 (2 months ago)
Author:
carndt
Message:

Fix #2044 ('turbogears.access' logger does not conform to combined log format)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/1.1/turbogears/controllers.py

    r5690 r5725  
    55import urllib 
    66import urlparse 
     7import time 
    78import types 
    89 
     
    478479    accesslog = logging.getLogger("turbogears.access") 
    479480    def _cp_log_access(self): 
    480         tmpl = '%(h)s %(l)s %(u)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"' 
     481        # Conforms to Combined Log Format 
     482        # http://httpd.apache.org/docs/2.2/logs.html#combined 
     483        tmpl = '%(host)s %(ident)s %(authuser)s [%(date)s] "%(request)s" ' \ 
     484            '%(status)s %(bytes)s "%(referrer)s" "%(useragent)s"' 
    481485        try: 
    482             username = request.user_name 
    483             if not username: 
    484                 username = "-" 
     486            username = request.user_name or "-" 
    485487        except AttributeError: 
    486488            username = "-" 
    487         s = tmpl % {'h': request.remote_host, 
    488                    'l': '-', 
    489                    'u': username, 
    490                    'r': request.requestLine, 
    491                    's': response.status.split(" ", 1)[0], 
    492                    'b': response.headers.get('Content-Length', 
    493                             '') or "-", 
    494                    'f': request.headers.get('referer', ''), 
    495                    'a': request.headers.get('user-agent', ''), 
     489        request_date = time.strftime('%d/%b/%Y:%H:%M:%S +0000',time.gmtime()) 
     490        request_info = { 
     491            'host': request.headers.get('X-Forwarded-For') 
     492                or request.remote_host or request.remote_addr, 
     493            'ident': '-', 
     494            'authuser': username, 
     495            'date': request_date, 
     496            'request': request.requestLine, 
     497            'status': response.status.split(" ", 1)[0], 
     498            'bytes': response.headers.get('Content-Length') or "-", 
     499            'referrer': request.headers.get('referer', ""), 
     500            'useragent': request.headers.get('user-agent', ""), 
    496501        } 
    497         self.accesslog.info(s
     502        self.accesslog.info(tmpl, request_info
    498503 
    499504Root = RootController