diff --git a/daphne/access.py b/daphne/access.py index e18138a..7aa7942 100644 --- a/daphne/access.py +++ b/daphne/access.py @@ -14,57 +14,30 @@ class AccessLogGenerator: """ Called when an action happens; use it to generate log entries. """ - # HTTP requests if protocol == "http" and action == "complete": self.write_entry( host=details["client"], date=datetime.datetime.now(), - request="%(method)s %(path)s" % details, - status=details["status"], - length=details["size"], + request=f"{details['method']} {details['path']}", + status=details.get("status", "-"), + length=details.get("size", "-"), ) - # Websocket requests - elif protocol == "websocket" and action == "connecting": + elif protocol == "websocket": + message = f"WS{action.upper()} {details.get('path', '')}" self.write_entry( host=details["client"], date=datetime.datetime.now(), - request="WSCONNECTING %(path)s" % details, - ) - elif protocol == "websocket" and action == "rejected": - self.write_entry( - host=details["client"], - date=datetime.datetime.now(), - request="WSREJECT %(path)s" % details, - ) - elif protocol == "websocket" and action == "connected": - self.write_entry( - host=details["client"], - date=datetime.datetime.now(), - request="WSCONNECT %(path)s" % details, - ) - elif protocol == "websocket" and action == "disconnected": - self.write_entry( - host=details["client"], - date=datetime.datetime.now(), - request="WSDISCONNECT %(path)s" % details, + request=message, ) def write_entry( - self, host, date, request, status=None, length=None, ident=None, user=None + self, host, date, request, status="-", length="-", ident="-", user="-" ): """ Writes an NCSA-style entry to the log file (some liberty is taken with what the entries are for non-HTTP) """ + formatted_date = date.strftime("%d/%b/%Y:%H:%M:%S") self.stream.write( - '%s %s %s [%s] "%s" %s %s\n' - % ( - host, - ident or "-", - user or "-", - date.strftime("%d/%b/%Y:%H:%M:%S"), - request, - status or "-", - length or "-", - ) + f'{host} {ident} {user} [{formatted_date}] "{request}" {status} {length}\n' )