Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.mainResponder.log.rpcServerBrowser
on rpcServerBrowser (lineCount, colors) { //a macro that returns HTML for the log <<Render the XML-RPC Server log as HTML. <<10/26/99; 4:03:18 AM by AR <<Changes: <<4/14/00; 5:44:49 PM by JES <<localized <<11/6/99; 6:10:17 PM by PBS <<Removed the HTML caching as it's causing display glitches. local (adrLog = log.getGuestSubTable ("rpcServer")); lineCount = number (lineCount); //I keep getting bit by this, when called thru a macro, it's a string DW local (htmlText = "", indentLevel = 0); on add (s) { htmlText = htmlText + string.filledString ("\t", indentLevel) + s + "\r"}; on td (s) { return ("<td><font size=\"-1\">" + s + "</font></td>")}; betty.init (); if not user.betty.prefs.flKeepServerLog { add (mainResponder.getString ("log.loggingIsDisabled")); // 4/14/00 JES: localizes return (htmlText)}; local (i, j, adrHourTable, adrItem, sizeLog = sizeOf (adrLog^), ixLog, sizeHourTable); if sizeLog == 0 { add (mainResponder.getString ("log.noLogEntriesToday")); // 4/14/00 JES: localizes return (htmlText)}; add ("<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\">"); indentLevel++; <<add ("<table width=\"92%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"); indentLevel++ adrHourTable = @adrLog^ [sizeLog]; //generate for the most recent hour sizeHourTable = sizeOf (adrHourTable^); ixLog = sizeHourTable - lineCount + 1; if ixLog < 1 { ixLog = 1}; for j = sizeHourTable downTo ixLog { adrItem = @adrHourTable^ [j]; add ("<!-- " + j + " -->"); local (ixHtmlText = sizeOf (htmlText)); add ("<tr bgcolor=\"" + colors [(j % sizeOf (colors)) + 1] + "\">"); indentLevel++; add ("<td height=\"28\"></td>"); //a dummy table cell to establish row height with adrItem^ { local (ticksString = "", faultCodeString = "-"); try { //get ticks, expressed in a fraction of a second, it's complicated ticksString = string.ratio (ticks, 60, 2); if ticks > 120 { //more than two seconds ticksString = "<b><font color=\"deeppink\">" + ticksString + "</font></b>"}}; add (td (string.popLeading (string.nthField (time, ";", 2), ' '))); if defined (faultCode) { faultCodeString = "<b><font color=\"deeppink\">" + faultCode + "</font></b>"}; add (td (faultCodeString)); add (td (threads)); add (td (ticksString)); add (td (string.megabyteString (sizeIn))); add (td (string.megabyteString (sizeOut))); bundle { //do a DNS lookup local (client = xml.convertToDisplayName (nameof (adrItem^))); try {client = tcp.dns.getDomainName (client)}; add (td (client))}; bundle { //add the host if defined (host) { add (td (host))} else { add (td (" "))}}; bundle { //add the procedure name if defined (methodName) { add (td (methodName))} else { add (td (" "))}}}; add ("</tr>"); indentLevel--}; add ("</table>"); indentLevel--; return (htmlText)}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.