org.apache.oozie.service
Class XLogService

java.lang.Object
  extended by org.apache.oozie.service.XLogService
All Implemented Interfaces:
Service, Instrumentable

public class XLogService
extends Object
implements Service, Instrumentable

Built-in service that initializes and manages Logging via Log4j.

Oozie Lo4gj default configuration file is oozie-log4j.properties.

The file name can be changed by setting the Java System property oozie.log4j.file.

The Log4j configuration files must be a properties file.

The Log4j configuration file is first looked in the Oozie configuration directory see ConfigurationService. If the file is not found there, it is looked in the classpath.

If the Log4j configuration file is loaded from Oozie configuration directory, automatic reloading is enabled.

If the Log4j configuration file is loaded from the classpath, automatic reloading is disabled.

the automatic reloading interval is defined by the Java System property oozie.log4j.reload. The default value is 10 seconds.


Field Summary
static String DEFAULT_LOG4J_PROPERTIES
          Default value for the log4j configuration file if LOG4J_FILE is not set.
static String DEFAULT_RELOAD_INTERVAL
          Default value for the reload interval if LOG4J_RELOAD is not set.
static String GROUP
          Group log info constant.
static String LOG4J_FILE
          System property that indicates the log4j configuration file to load.
static String LOG4J_RELOAD
          System property that indicates the reload interval of the configuration file.
static String OOZIE_LOG_DIR
          System property that indicates the logs directory.
static String USER
          Group log info constant.
 
Fields inherited from interface org.apache.oozie.service.Service
CONF_PREFIX, DEFAULT_LOCK_TIMEOUT, lockTimeout, USE_XCOMMAND
 
Constructor Summary
XLogService()
           
 
Method Summary
 void destroy()
          Destroy the log service.
 Class<? extends Service> getInterface()
          Return the public interface for log service.
 String getOozieLogName()
           
 String getOozieLogPath()
           
 void init(Services services)
          Initialize the log service.
 void instrument(Instrumentation instr)
          Instruments the log service.
 void streamLog(XLogStreamer.Filter filter, Date startTime, Date endTime, Writer writer)
          Stream the log of a job.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

OOZIE_LOG_DIR

public static final String OOZIE_LOG_DIR
System property that indicates the logs directory.

See Also:
Constant Field Values

LOG4J_FILE

public static final String LOG4J_FILE
System property that indicates the log4j configuration file to load.

See Also:
Constant Field Values

LOG4J_RELOAD

public static final String LOG4J_RELOAD
System property that indicates the reload interval of the configuration file.

See Also:
Constant Field Values

DEFAULT_LOG4J_PROPERTIES

public static final String DEFAULT_LOG4J_PROPERTIES
Default value for the log4j configuration file if LOG4J_FILE is not set.

See Also:
Constant Field Values

DEFAULT_RELOAD_INTERVAL

public static final String DEFAULT_RELOAD_INTERVAL
Default value for the reload interval if LOG4J_RELOAD is not set.

See Also:
Constant Field Values

USER

public static final String USER
Group log info constant.

See Also:
Constant Field Values

GROUP

public static final String GROUP
Group log info constant.

See Also:
Constant Field Values
Constructor Detail

XLogService

public XLogService()
Method Detail

getOozieLogPath

public String getOozieLogPath()

getOozieLogName

public String getOozieLogName()

init

public void init(Services services)
          throws ServiceException
Initialize the log service.

Specified by:
init in interface Service
Parameters:
services - services instance.
Throws:
ServiceException - thrown if the log service could not be initialized.

destroy

public void destroy()
Destroy the log service.

Specified by:
destroy in interface Service

getInterface

public Class<? extends Service> getInterface()
Return the public interface for log service.

Specified by:
getInterface in interface Service
Returns:
XLogService.

instrument

public void instrument(Instrumentation instr)
Instruments the log service.

It sets instrumentation variables indicating the config file, reload interval and if loaded from the classpath.

Specified by:
instrument in interface Instrumentable
Parameters:
instr - instrumentation to use.

streamLog

public void streamLog(XLogStreamer.Filter filter,
                      Date startTime,
                      Date endTime,
                      Writer writer)
               throws IOException
Stream the log of a job.

Parameters:
filter - log streamer filter.
startTime - start time for log events to filter.
endTime - end time for log events to filter.
writer - writer to stream the log to.
Throws:
IOException - thrown if the log cannot be streamed.


Copyright © 2013 Apache Software Foundation. All Rights Reserved.