[CalendarServer-changes] [12641] CalendarServer/trunk/calendarserver/webadmin
source_changes at macosforge.org
source_changes at macosforge.org
Wed Mar 12 11:16:52 PDT 2014
Revision: 12641
http://trac.calendarserver.org//changeset/12641
Author: wsanchez at apple.com
Date: 2014-02-10 18:53:31 -0800 (Mon, 10 Feb 2014)
Log Message:
-----------
Access log works.
Modified Paths:
--------------
CalendarServer/trunk/calendarserver/webadmin/logs.py
CalendarServer/trunk/calendarserver/webadmin/logs.xhtml
Modified: CalendarServer/trunk/calendarserver/webadmin/logs.py
===================================================================
--- CalendarServer/trunk/calendarserver/webadmin/logs.py 2014-02-11 01:32:21 UTC (rev 12640)
+++ CalendarServer/trunk/calendarserver/webadmin/logs.py 2014-02-11 02:53:31 UTC (rev 12641)
@@ -90,14 +90,17 @@
def __init__(self):
Resource.__init__(self)
- self._observer = AccessLoggingObserver()
+ logObserver = AccessLoggingObserver()
+ logObserver.start()
- self._observer.logMessage(u"Hello")
- self._observer.logMessage(u"Yo")
- self._observer.logMessage(u"Bonjour")
- self._observer.logMessage(u"Hola")
+ self._observer = logObserver
+ # self._observer.logMessage(u"Hello")
+ # self._observer.logMessage(u"Yo")
+ # self._observer.logMessage(u"Bonjour")
+ # self._observer.logMessage(u"Hola")
+
def render(self, request):
start = request.headers.getRawHeaders("last-event-id")
@@ -141,12 +144,14 @@
start = self._start
messageID = None
- for message in self._observer.messages():
- messageID = id(message)
+ for event in self._observer.events():
+ messageID = id(event)
# If we have a start point, skip messages up to and including the
# one at the start point.
if start is not None:
+ print("*** Skipping event # {0}".format(messageID))
+
if messageID == start:
messageID = None
start = None
@@ -155,10 +160,15 @@
self._start = messageID
+ message = event["log-format"] % event
+
eventText = textAsEvent(
- message, eventID=id(message), eventClass=u"access"
+ message, eventID=messageID, eventClass=u"access"
)
+ print("--> Sending event # {0}".format(messageID))
+ print(eventText)
+
return succeed(eventText)
if messageID is not None:
@@ -179,10 +189,16 @@
+# Note: CommonAccessLoggingObserverExtensions is an old-style log observer, as
+# it inherits from BaseCommonAccessLoggingObserver in txweb2.
+
class AccessLoggingObserver(CommonAccessLoggingObserverExtensions):
"""
Log observer that captures apache-style access log text entries in a
buffer.
+
+ @note: L{AccessLoggingObserver} is an old-style log observer, as it
+ ultimately inherits from L{txweb2.log.BaseCommonAccessLoggingObserver}.
"""
def __init__(self):
CommonAccessLoggingObserverExtensions.__init__(self)
@@ -190,13 +206,19 @@
self._buffer = deque(maxlen=100)
- def logMessage(self, message):
- print("LOG: {0}".format(message))
+ def logStats(self, event):
+ # Only look at access log events
+ if event["type"] != "access-log":
+ return
- self._buffer.append(message)
+ # # Omit events for the log event stream
+ # if event["uri"] == "/admin/logs/events":
+ # return
+ self._buffer.append(event)
- def messages(self):
+
+ def events(self):
return iter(self._buffer)
Modified: CalendarServer/trunk/calendarserver/webadmin/logs.xhtml
===================================================================
--- CalendarServer/trunk/calendarserver/webadmin/logs.xhtml 2014-02-11 01:32:21 UTC (rev 12640)
+++ CalendarServer/trunk/calendarserver/webadmin/logs.xhtml 2014-02-11 02:53:31 UTC (rev 12641)
@@ -39,7 +39,11 @@
eventSource.addEventListener(
"access",
function(e) {
+ // Append text
accessLogElement.innerHTML += event.data + "<br />";
+
+ // Scroll to bottom
+ accessLogElement.scrollTop = accessLogElement.scrollHeight;
},
false
);
@@ -51,8 +55,10 @@
.log {
width: 100%;
height: 150pt;
- overflow-y: scroll;
+ overflow: scroll;
border: 1px solid;
+ font-family: monospace;
+ font-size: 0.75em;
}
</style>
</head>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140312/9e3e08e0/attachment.html>
More information about the calendarserver-changes
mailing list