Since we do not have a lotus script debugger sort of facility in XPage, I often had difficulties in debugging server javascript code in Xpages.
Since Server Script allows lotusscript equivalent functions, Its kind of easy to debug them by creating a custom log database.
The following is How I use my log database. It is not an awesome tool. It simply helps you with print statement like feature.
var log=new Log(); //creates a log object
log.init(); //creates a log document
log.record("check point 1="+ message 1); // each of these lines
log.record("check point 1="+ message 2); // goes into consecutive lines in the
log.record("check point 1="+ message 3); // log document
log.close();
you can use this with your custom functions as illustrated in the following statement,
function testMe() {
var log=new Log(); //creates a log object
log.init("","myXpLog.nsf"); //creates a log document
try {
var x=session.getCommonUserName();
log.record("check point 1="+ @UpperCase(x));
var y=@UpperCase(x);
log.record("check point 1="+ @ProperCase(x));the
var z= @ProperCase(x)
} catch(error) {
log.record("Error: "+error.message);
} finally {
log.close();
}
}
Thus you will get to log the progress of your app.
The log class that I am speaking about is defined by me as follows,
Step 1 : Include this in your script library
function Log() {
var xpLogDB:NotesDatabase=null;
var logDoc:NotesDocument=null;
var logDetails="";
var logExists=true;
this.init=function (serverName,databasePath) {
xpLogDB=session.getDatabase(serverName,databasePath)
logDoc=xpLogDB.createDocument();
logDoc.replaceItemValue("Form","log")
}
this.record=function(detail:String) {
logDetails+=detail+@NewLine();
}
this.close = function (){
logDoc.replaceItemValue("log",logDetails)
logDoc.save(true,false);
}
this.deleteLog=function (){
logDoc.save(true,false);
logDoc.remove(true);
logExists=false;
}
this.logExists=function () {
return logExists;
}
}
Step2:
Create a notes database with a form named log with a field named log. Preview the database and you will be able to see any logs getting created
No comments:
Post a Comment