다음 예제에서는 빈 테스트 스크립트에서 텍스트 로그 출력을 작성하는
방법을 보여줍니다.
원하는 로그 결과를 얻으려면 기본 클래스 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;
}
}