Class RollingFileManager

    • Field Detail

      • EPOCH

        private static final java.nio.file.attribute.FileTime EPOCH
      • size

        protected long size
      • initialTime

        private long initialTime
      • semaphore

        private final java.util.concurrent.Semaphore semaphore
      • renameEmptyFiles

        private volatile boolean renameEmptyFiles
      • initialized

        private volatile boolean initialized
      • fileName

        private volatile java.lang.String fileName
      • directWrite

        private final boolean directWrite
      • asyncExecutor

        private final java.util.concurrent.ExecutorService asyncExecutor
    • Constructor Detail

      • RollingFileManager

        @Deprecated
        protected RollingFileManager​(java.lang.String fileName,
                                     java.lang.String pattern,
                                     java.io.OutputStream os,
                                     boolean append,
                                     long size,
                                     long initialTime,
                                     TriggeringPolicy triggeringPolicy,
                                     RolloverStrategy rolloverStrategy,
                                     java.lang.String advertiseURI,
                                     Layout<? extends java.io.Serializable> layout,
                                     int bufferSize,
                                     boolean writeHeader)
        Deprecated.
      • RollingFileManager

        @Deprecated
        protected RollingFileManager​(java.lang.String fileName,
                                     java.lang.String pattern,
                                     java.io.OutputStream os,
                                     boolean append,
                                     long size,
                                     long initialTime,
                                     TriggeringPolicy triggeringPolicy,
                                     RolloverStrategy rolloverStrategy,
                                     java.lang.String advertiseURI,
                                     Layout<? extends java.io.Serializable> layout,
                                     boolean writeHeader,
                                     java.nio.ByteBuffer buffer)
        Deprecated.
      • RollingFileManager

        @Deprecated
        protected RollingFileManager​(LoggerContext loggerContext,
                                     java.lang.String fileName,
                                     java.lang.String pattern,
                                     java.io.OutputStream os,
                                     boolean append,
                                     boolean createOnDemand,
                                     long size,
                                     long initialTime,
                                     TriggeringPolicy triggeringPolicy,
                                     RolloverStrategy rolloverStrategy,
                                     java.lang.String advertiseURI,
                                     Layout<? extends java.io.Serializable> layout,
                                     boolean writeHeader,
                                     java.nio.ByteBuffer buffer)
        Deprecated.
      • RollingFileManager

        protected RollingFileManager​(LoggerContext loggerContext,
                                     java.lang.String fileName,
                                     java.lang.String pattern,
                                     java.io.OutputStream os,
                                     boolean append,
                                     boolean createOnDemand,
                                     long size,
                                     long initialTime,
                                     TriggeringPolicy triggeringPolicy,
                                     RolloverStrategy rolloverStrategy,
                                     java.lang.String advertiseURI,
                                     Layout<? extends java.io.Serializable> layout,
                                     java.lang.String filePermissions,
                                     java.lang.String fileOwner,
                                     java.lang.String fileGroup,
                                     boolean writeHeader,
                                     java.nio.ByteBuffer buffer)
        Since:
        2.9
    • Method Detail

      • initialize

        public void initialize()
      • getFileManager

        public static RollingFileManager getFileManager​(java.lang.String fileName,
                                                        java.lang.String pattern,
                                                        boolean append,
                                                        boolean bufferedIO,
                                                        TriggeringPolicy policy,
                                                        RolloverStrategy strategy,
                                                        java.lang.String advertiseURI,
                                                        Layout<? extends java.io.Serializable> layout,
                                                        int bufferSize,
                                                        boolean immediateFlush,
                                                        boolean createOnDemand,
                                                        java.lang.String filePermissions,
                                                        java.lang.String fileOwner,
                                                        java.lang.String fileGroup,
                                                        Configuration configuration)
        Returns a RollingFileManager.
        Parameters:
        fileName - The file name.
        pattern - The pattern for rolling file.
        append - true if the file should be appended to.
        bufferedIO - true if data should be buffered.
        policy - The TriggeringPolicy.
        strategy - The RolloverStrategy.
        advertiseURI - the URI to use when advertising the file
        layout - The Layout.
        bufferSize - buffer size to use if bufferedIO is true
        immediateFlush - flush on every write or not
        createOnDemand - true if you want to lazy-create the file (a.k.a. on-demand.)
        filePermissions - File permissions
        fileOwner - File owner
        fileGroup - File group
        configuration - The configuration.
        Returns:
        A RollingFileManager.
      • getFileName

        public java.lang.String getFileName()
        Returns the name of the File being managed.
        Overrides:
        getFileName in class FileManager
        Returns:
        The name of the File being managed.
      • isDirectWrite

        public boolean isDirectWrite()
      • write

        protected void write​(byte[] bytes,
                             int offset,
                             int length,
                             boolean immediateFlush)
        Description copied from class: OutputStreamManager
        Some output streams synchronize writes while others do not. Synchronizing here insures that log events won't be intertwined.
        Overrides:
        write in class FileManager
        Parameters:
        bytes - The serialized Log event.
        offset - The offset into the byte array.
        length - The number of bytes to write.
        immediateFlush - flushes immediately after writing.
      • isRenameEmptyFiles

        public boolean isRenameEmptyFiles()
      • setRenameEmptyFiles

        public void setRenameEmptyFiles​(boolean renameEmptyFiles)
      • getFileSize

        public long getFileSize()
        Returns the current size of the file.
        Returns:
        The size of the file in bytes.
      • getFileTime

        public long getFileTime()
        Returns the time the file was created.
        Returns:
        The time the file was created.
      • checkRollover

        public void checkRollover​(LogEvent event)
        Determines if a rollover should occur.
        Parameters:
        event - The LogEvent.
      • releaseSub

        public boolean releaseSub​(long timeout,
                                  java.util.concurrent.TimeUnit timeUnit)
        Description copied from class: OutputStreamManager
        Default hook to write footer during close.
        Overrides:
        releaseSub in class OutputStreamManager
        Parameters:
        timeout - timeout
        timeUnit - timeout time unit
        Returns:
        true if all resources were closed normally, false otherwise.
      • rollover

        public void rollover​(java.util.Date prevFileTime,
                             java.util.Date prevRollTime)
      • rollover

        public void rollover()
      • createFileAfterRollover

        protected void createFileAfterRollover()
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • getPatternProcessor

        public PatternProcessor getPatternProcessor()
        Returns the pattern processor.
        Returns:
        The PatternProcessor.
      • setTriggeringPolicy

        public void setTriggeringPolicy​(TriggeringPolicy triggeringPolicy)
      • setRolloverStrategy

        public void setRolloverStrategy​(RolloverStrategy rolloverStrategy)
      • setPatternProcessor

        public void setPatternProcessor​(PatternProcessor patternProcessor)
      • getTriggeringPolicy

        public <T extends TriggeringPolicy> T getTriggeringPolicy()
        Returns the triggering policy.
        Type Parameters:
        T - TriggeringPolicy type
        Returns:
        The TriggeringPolicy
      • getRolloverStrategy

        public RolloverStrategy getRolloverStrategy()
        Returns the rollover strategy.
        Returns:
        The RolloverStrategy
      • updateData

        public void updateData​(java.lang.Object data)
        Updates the RollingFileManager's data during a reconfiguration. This method should be considered private. It is not thread safe and calling it outside of a reconfiguration may lead to errors. This method may be made protected in a future release.
        Overrides:
        updateData in class AbstractManager
        Parameters:
        data - The data to update.
      • initialFileTime

        private static long initialFileTime​(java.io.File file)