Class MaprfsLogAppender

  • All Implemented Interfaces:
    java.io.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 java.io.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 Detail

      • maprFS

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

        protected java.net.URI uri
      • fileName

        protected java.lang.String fileName
      • nameHierarchy

        protected java.lang.String nameHierarchy
      • fileNamePath

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

        protected org.apache.log4j.Appender failoverAppender
      • failoverAppenderName

        protected java.lang.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 java.lang.String DIR_PREFIX
    • Constructor Detail

      • MaprfsLogAppender

        public MaprfsLogAppender​(java.net.URI uri)
      • MaprfsLogAppender

        public MaprfsLogAppender()
    • Method Detail

      • setFailoverAppender

        public void setFailoverAppender​(java.lang.String failoverAppenderName)
      • setURI

        public void setURI​(java.lang.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​(java.lang.String fileName)
      • getFile

        public java.lang.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 java.io.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 java.io.IOException
        Throws:
        java.io.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 java.io.IOException
        Throws:
        java.io.IOException
      • failoverToLocalLogs

        protected void failoverToLocalLogs​(java.lang.Throwable reason)
      • getLogFilePermission

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