例: テキスト・ログの作成

以下の例では、空のテスト・スクリプトからテキスト・ログ出力を作成する方法を示します。
基本クラス LogExtensionAdapter を継承するサブクラスを実装して、次のメソッドを実装し、希望するログ結果を取得します。
public void initLog() 
public void writeLog(ILogMessage message)
public void closeLog()
次に、空のテスト・スクリプトから出力されたテキスト・ログの例を示します。
July 23, 2007 8:30:12 PM IST :Script Name Script1.java Result :INFO Event SCRIPT START headlind Script start [Script1] 
Property Name =line_number Property Value =1 
Property Name =script_name Property Value =Script1 
Property Name =script_id Property Value =Script1.java
July 23, 2007 8:30:12 PM IST :Script Name Script1.java Result :PASS Event SCRIPT END headlind Script end [Script1] 
Property Name =line_number Property Value =-1 
Property Name =script_name Property Value =Script1 
Property Name =script_id Property Value =Script1.java
以下の例に、前の例で示したテキスト・ログを出力するためのテキスト・ログの実装を示します。
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.Vector; 

import com.rational.test.ft.services.ILogMessage; 
import com.rational.test.ft.services.LogException; 
import com.rational.test.ft.services.LogExtensionAdapter; 
import com.rational.test.ft.services.LogMessageProperty; 

public class ExampleLog extends LogExtensionAdapter { 

private String logName=null; 
private String logDirectory=null; 
private PrintWriter out=null; 

public ExampleLog(String logName) { 
 super(logName); 
 this.logName=logName; 
 this.logDirectory=null; 
} 

public ExampleLog() { 
 super(); 
 this.logName=null; 
 this.logDirectory=null; 
} 

/**
* Initialize the stream to write the log.
*/
public void initLog() throws LogException { 
 try{ 
  this.logName=getLogName(); 
  this.logDirectory=getLogDirectory(); 
  File logFile=new File(logDirectory,logName+".txt"); 
  FileOutputStream fos=new FileOutputStream(logFile); 
  out=new PrintWriter(fos); 
 }catch(IOException e) 
 { 
  
 } 
} 

/**
* Write log events/message to the file stream
*/
public void writeLog(ILogMessage message) { 
 Vector properties=message.getProperties(); 
  String result=getResult(message); 
  String event_type=getEventType(message); 
  String headline=getHeadline(message); 
  String timestamp=getTimestamp(); 
  String currentScriptName=getScriptName(message); 
  out.println(timestamp + " :Script Name " + currentScriptName + " Result :" + result + " Event " + event_type + " headlind " + headline ); 
  for(int i=0,size=properties.size();i<size;i++)  { 
  LogMessageProperty property = 
   (LogMessageProperty) properties.elementAt( i ); 
  out.println("Property Name =" + property.getName().toString() + " Property Value =" +property.getValue().toString() ); 
  } 
  out.println(); 
} 

/**
* Close the stream to persist the logs.
*/
public void closeLog() { 
 try{ 
   out.close(); 
 }catch(Exception e) {  
  
 } 
} 

/**
* Return the result from the log message.
*/
private String getResult(ILogMessage message) { 
  String result=null; 
  switch (message.getResult()) 
  { 
   case LOG_FAILURE : result="FAILURE";break; 
   case LOG_PASS : result="PASS";break; 
   case LOG_WARNING : result="WARNING";break; 
   default: result= "INFO"; 
 } 
 return result; 
} 

/** 
* Return string representation of event from the ILogMessage.
*/
private String getEventType(ILogMessage message) { 
  String eventType=null; 
  switch(message.getEvent()) 
  { 
   case EVENT_SCRIPT_START : eventType="SCRIPT START";break; 
   case EVENT_SCRIPT_END : eventType="SCRIPT END";break; 
   case EVENT_VP : eventType="VERIFCATION POINT";break; 
   case EVENT_CALL_SCRIPT : eventType = "CALL_SCRIPT"; break; 
   case EVENT_APPLICATION_START : eventType="APPLICATION START";break; 
   case EVENT_APPLICATION_END : eventType="APPLICATION END";break; 
   case EVENT_TIMER_START : eventType="TIMER START";break; 
   case EVENT_TIMER_END : eventType= "TIMER END" ;break; 
   case EVENT_CONFIGURATION : eventType="CONFIGURATION"; break; 
   default : eventType="GENERAL"; 
 } 
 return eventType; 
} 

/**
* Returns the headline from the ILogMessage.
*/
private String getHeadline(ILogMessage message) { 
  return message.getHeadline(); 
} 

/**
* Return the script name from the ILogMessage.
*/
private String getScriptName(ILogMessage message) { 
  String scriptName=null; 
  Vector properties=message.getProperties(); 
  for(int i=0,size=properties.size();i<size;i++)  { 
   LogMessageProperty property = 
   (LogMessageProperty) properties.elementAt( i ); 
   if(property.getName().equalsIgnoreCase(PROP_SCRIPT_ID)) 
   { 
     scriptName=property.getValue().toString(); 
   } 
  } 
  return scriptName; 
} 
} 

フィードバック