Monday, November 08, 2010 at 12:06 AM.
system.verbs.builtins.webserver.errorMessage
on errorMessage (errMsg, dataAdr = nil) {
try {
<<PBS 2/8/97: call string.iso8859encode rather than toys.cleanForExport
errMsg = string.iso8859encode (errMsg, @html.data.iso8859.mac);
bundle { <<log error
local {
fPath = file.folderFromPath (Frontier.getProgramPath ()) + "Error.log";
logString = string.replace (clock.now (), "; ", tab) + tab + errMsg};
if !file.exists (fPath) { <<create file with field name in first line
file.new (fPath);
file.setType (fPath, 'TEXT');
file.setCreator (fPath, 'R*ch')};
semaphores.lock ("error.log", 3600);
try {
file.writeLine (fPath, logString);
if (dataAdr != nil) and (defined (dataAdr)) and (webserver.getPref ("verboseLogging")) { <<verbose logging -- still testing
local (i);
for i = 1 to sizeOf (dataAdr^) {
file.writeLine (fPath, nameOf (dataAdr^[i]) + ": " + dataAdr^[i])}};
semaphores.unlock ("error.log")}
else {
semaphores.unlock ("error.log")}};
local (x);
if typeOf (dataAdr) != addressType { <<create an address to a table
new (tableType, @x);
dataAdr = @x};
dataAdr^.errorMessage = errMsg;
local (htmltext = webserver.httpHeader (), errPage = string (webserver.getPref ("errorPage")));
htmltext = htmltext + webserver.processMacros (errPage, dataAdr);
return (htmltext)}
else {
return ("An unknown error occurred in Frontier.")}}
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.