/*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the License). You may not use this file except in
* compliance with the License.
*
* You can obtain a copy of the License at
* http://www.sun.com/cddl/cddl.html or
* install_dir/legal/LICENSE
* See the License for the specific language governing
* permission and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* Header Notice in each file and include the License file
* at install_dir/legal/LICENSE.
* If applicable, add the following below the CDDL Header,
* with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* Copyright 2009 Sun Microsystems Inc. All Rights Reserved
*/
package com.sun.hadoop.harness;
import java.util.Calendar;
import java.util.logging.Logger;
/**
*
* @author Damien Cooke
*
* This class manages a single line from a hadoop logfile. This is used to calculate some of the statistics we can't get (or I can not see how to get) from anywhere else
*/
public class LogEntry
{
static Logger logger = Logger.getLogger(LogEntry.class.getName());
private String hostName;
private String runID;
private boolean start;
private boolean end;
private Calendar timestamp;
private String logLevel;
private String source;
private String message;
/*
* Default class constructor, configures some pertinent instance variables
*/
public void HadoopMRLogParser()
{
setHostName("N/A");
setStart(false);
setEnd(false);
timestamp = Calendar.getInstance();
}
/*
* Class constructor that configures the complete instance of this class
* @param hostName, hostname of log reporting machine
* @praam runID, system gemerated run identifier
* @param start, conditional variable to assit in the determination of log sections
* @praam end, conditional variable to assit in the determination of log sections
* @param date, date field from the log entry
* @praam logLevel, log message priority
* @param source, type of message
* @praam message, actual message
* @return void
*/
public void HadoopLogEntry(final String hostName, final String runID, final boolean start, final boolean end, final Calendar date, final String logLevel, final String source, final String message)
{
//construct a LogEntry from these details
this.setHostName(hostName);
this.setRunID(runID);
this.setStart(start);
this.setEnd(end);
this.setDate(date);
this.setLogLevel(logLevel);
this.setSource(source);
this.setMessage(message);
}
/**
* method returns the instance hostname
* @return the hostName
*/
public String getHostName() {
return hostName;
}
/**
* method sets the hostname for this instance
* @param hostName the hostName to set
*/
public void setHostName(final String hostName) {
this.hostName = hostName;
}
/**
* method returns the current value stored in this object for the FABAN supplied run identifier
* @return the runID
*
*/
public String getRunID() {
return runID;
}
/**
* method sets value for the FABAN supplied run identifier
* @param runID the runID to set
*/
public void setRunID(final String runID) {
this.runID = runID;
}
/**
* method returnes the value for stat instance variable
* @return the start
*/
public boolean isStart() {
return start;
}
/**
* methood sets the value for the instance variable start
* @param isStart the start to set
*/
public void setStart(final boolean isStart) {
this.start = isStart;
}
/**
* method returns the value for the instance variable end
* @return the end
*/
public boolean isEnd() {
return end;
}
/**
* method sets the instance variable value for end
* @param isEnd the end to set
*/
public void setEnd(final boolean isEnd) {
this.end = isEnd;
}
/**
* method returns the value for the instance variable timestamp
* @return the timestamp
*/
public Calendar getDate() {
return timestamp;
}
/**
* method sets the current value for the timestamp instance variable
* @param date the timestamp to set
*/
public void setDate(final Calendar date) {
this.timestamp = date;
}
/**
* method returns the priority of this instance of the class
* @return the logLevel
*/
public String getLogLevel() {
return logLevel;
}
/**
* method sets the instance variable representing the priority of this message
* @param logLevel the logLevel to set
*/
public void setLogLevel(final String logLevel) {
this.logLevel = logLevel;
}
/**
* method returnes the source of the message
* @return the source
*/
public String getSource() {
return source;
}
/**
* method sets the source of the message for this instance
* @param source the source to set
*/
public void setSource(final String source) {
this.source = source;
}
/**
* method returns the value of the message instance variable
* @return the message
*/
public String getMessage() {
return message;
}
/**
* method sets the instance variable containing the message
* @param message the message to set
*/
public void setMessage(final String message) {
this.message = message;
}
}