Class MaprfsLogAppender

java.lang.Object
org.apache.log4j.AppenderSkeleton
com.mapr.log4j.MaprfsLogAppender
All Implemented Interfaces:
Flushable, org.apache.hadoop.fs.Syncable, org.apache.log4j.Appender, org.apache.log4j.spi.OptionHandler
Direct Known Subclasses:
CentralTaskLogAppender, MaprfsDailyRollingLogAppender, MaprfsRollingLogAppender

public class MaprfsLogAppender extends org.apache.log4j.AppenderSkeleton implements Flushable, org.apache.hadoop.fs.Syncable
Base log appender to log into MapRFS it can be used on its own or most likely its children will be used: MaprfsDailyRollingLogAppender ( counterpart of DailyRollingFileAppender) MaprfsRollingLogAppender ( counterpart of RollingFileAppender ) This appender provides failover functionality to write using other (non MapRFS appender) in case logs can not be written into MapRFS. LoggingEvent that first encountered an issue will not be written into failover appender
  • Field Details

    • maprFS

      protected org.apache.hadoop.fs.FileSystem maprFS
    • uri

      protected URI uri
    • fileName

      protected String fileName
    • nameHierarchy

      protected String nameHierarchy
    • fileNamePath

      protected org.apache.hadoop.fs.Path fileNamePath
    • failoverAppender

      protected org.apache.log4j.Appender failoverAppender
    • failoverAppenderName

      protected String failoverAppenderName
    • BUFFER_SIZE

      public int BUFFER_SIZE
    • immediateFlush

      protected boolean immediateFlush
    • immediateSync

      protected boolean immediateSync
    • syncIntervalSeconds

      protected long syncIntervalSeconds
    • DIR_PREFIX

      public static final String DIR_PREFIX
  • Constructor Details

    • MaprfsLogAppender

      public MaprfsLogAppender(URI uri)
    • MaprfsLogAppender

      public MaprfsLogAppender()
  • Method Details

    • setFailoverAppender

      public void setFailoverAppender(String failoverAppenderName)
    • setURI

      public void setURI(String uriStr)
    • setImmediateFlush

      public void setImmediateFlush(boolean value)
    • getImmediateFlush

      public boolean getImmediateFlush()
      Returns value of the ImmediateFlush option.
    • setImmediateSync

      public void setImmediateSync(boolean value)
    • getImmediateSync

      public boolean getImmediateSync()
    • setSyncIntervalSeconds

      public void setSyncIntervalSeconds(long value)
    • getSyncIntervalSeconds

      public long getSyncIntervalSeconds()
    • setFile

      public void setFile(String fileName)
    • getFile

      public String getFile()
    • setFS

      protected void setFS(org.apache.hadoop.fs.FileSystem fs)
    • activateOptions

      public void activateOptions()
      Specified by:
      activateOptions in interface org.apache.log4j.spi.OptionHandler
      Overrides:
      activateOptions in class org.apache.log4j.AppenderSkeleton
    • flush

      public void flush()
      Specified by:
      flush in interface Flushable
    • sync

      public void sync()
      Specified by:
      sync in interface org.apache.hadoop.fs.Syncable
    • hsync

      public void hsync()
      Specified by:
      hsync in interface org.apache.hadoop.fs.Syncable
    • hflush

      public void hflush()
      Specified by:
      hflush in interface org.apache.hadoop.fs.Syncable
    • createFile

      protected void createFile(org.apache.hadoop.fs.Path filePath) throws IOException
      Throws:
      IOException
    • append

      protected void append(org.apache.log4j.spi.LoggingEvent event)
      Specified by:
      append in class org.apache.log4j.AppenderSkeleton
    • close

      public void close()
      Specified by:
      close in interface org.apache.log4j.Appender
    • closeFile

      protected void closeFile()
    • requiresLayout

      public boolean requiresLayout()
      Specified by:
      requiresLayout in interface org.apache.log4j.Appender
    • writeFooter

      protected void writeFooter()
    • writeHeader

      protected void writeHeader()
      Write a header as produced by the embedded layout's Layout.getHeader() method.
    • getFileSize

      protected long getFileSize() throws IOException
      Throws:
      IOException
    • failoverToLocalLogs

      protected void failoverToLocalLogs(Throwable reason)
    • getLogFilePermission

      protected org.apache.hadoop.fs.permission.FsPermission getLogFilePermission()