/*
* @author : Mark Drake
* @version : 1.0
* Development Environment : Oracle9i JDeveloper
* Name of the File : FileBasedLogger.java
* Creation / Modification History :
* Shefali Bansal 25-Jan-2003 Modified
* Modifications Made:
* 1. Removed the unused log() method
*/
//Package name
package oracle.otnsamples.xmldb.simplebulkloader.common.trace;
// IO Imports
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
// Java Text Imports
import java.text.SimpleDateFormat;
//Java Utility Classes
import java.util.Date;
/**
* This class provides mechanism for logging the trace into a file. It
* implements the abstract class Logger
*/
public class FileBasedLogger implements Logger {
SimpleDateFormat sdf;
// Defining the member variables
private PrintWriter m_LogWriter;
/**
* Constructor to a logger file where the trace will be written
*/
public FileBasedLogger( ) {
String logFilename = null;
try {
sdf = new SimpleDateFormat( "yyyymmddHHmmss" );
logFilename = "TraceOutputFile-" + sdf.format( new Date( ) ) + ".log";
File logFile = new File( logFilename );
FileOutputStream logWriter = new FileOutputStream( logFile );
m_LogWriter = new PrintWriter( logWriter );
}
catch ( java.io.IOException e ) {
System.out.println( "FileBasedLogger(): Could not create Log File " +
logFilename );
e.printStackTrace( );
m_LogWriter = new PrintWriter( System.out );
}
}
/**
* Implements the abstract method log( String parm1 ). This method prints the
* String information passed to it in the logger file
*
* @param parm1 String message to be logged into the trace file
*/
public void log( String parm1 ) {
m_LogWriter.println( parm1 );
m_LogWriter.flush( );
}
/**
* Implements the abstract method printStackTrace(). This method prints the
* Stack trace information in the logger file
*
* @param parm1 Stack trace information
*/
public void printStackTrace( Throwable parm1 ) {
StringWriter sw = new StringWriter( );
PrintWriter pw = new PrintWriter( sw );
parm1.printStackTrace( pw );
pw.close( );
log( sw.toString( ) );
}
}