Class FileManager
java.lang.Object
org.apache.logging.log4j.core.appender.AbstractManager
org.apache.logging.log4j.core.appender.OutputStreamManager
org.apache.logging.log4j.core.appender.FileManager
- All Implemented Interfaces:
AutoCloseable
,ByteBufferDestination
- Direct Known Subclasses:
RollingFileManager
Manages actual File I/O for File Appenders.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.logging.log4j.core.appender.AbstractManager
AbstractManager.AbstractFactoryData
-
Field Summary
Fields inherited from class org.apache.logging.log4j.core.appender.OutputStreamManager
byteBuffer, layout
Fields inherited from class org.apache.logging.log4j.core.appender.AbstractManager
count, LOGGER
-
Constructor Summary
ModifierConstructorDescriptionprotected
FileManager
(String fileName, OutputStream os, boolean append, boolean locking, String advertiseURI, Layout<? extends Serializable> layout, boolean writeHeader, ByteBuffer buffer) Deprecated.protected
FileManager
(String fileName, OutputStream os, boolean append, boolean locking, String advertiseURI, Layout<? extends Serializable> layout, int bufferSize, boolean writeHeader) Deprecated.protected
FileManager
(LoggerContext loggerContext, String fileName, OutputStream os, boolean append, boolean locking, boolean createOnDemand, String advertiseURI, Layout<? extends Serializable> layout, boolean writeHeader, ByteBuffer buffer) Deprecated.protected
FileManager
(LoggerContext loggerContext, String fileName, OutputStream os, boolean append, boolean locking, boolean createOnDemand, String advertiseURI, Layout<? extends Serializable> layout, String filePermissions, String fileOwner, String fileGroup, boolean writeHeader, ByteBuffer buffer) -
Method Summary
Modifier and TypeMethodDescriptionprotected OutputStream
protected void
createParentDir
(File file) protected void
defineAttributeView
(Path path) int
Returns the buffer size to use if the appender was configured with BufferedIO=true, otherwise returns a negative number.FileManager's content format is specified by:Key: "fileURI" Value: provided "advertiseURI" param
.Returns file group if defined and the OS supports POSIX/group file attribute view, null otherwise.static FileManager
getFileManager
(String fileName, boolean append, boolean locking, boolean bufferedIo, boolean createOnDemand, String advertiseUri, Layout<? extends Serializable> layout, int bufferSize, String filePermissions, String fileOwner, String fileGroup, Configuration configuration) Returns the FileManager.Returns the name of the File being managed.Returns file owner if defined and the OS supports owner file attribute view, null otherwise.Returns POSIX file permissions if defined and the OS supports POSIX file attribute, null otherwise.boolean
isAppend()
Returns the append status.boolean
Returns true if file attribute view enabled for this file manager.boolean
Returns the lazy-create.boolean
Returns the lock status.protected void
write
(byte[] bytes, int offset, int length, boolean immediateFlush) Some output streams synchronize writes while others do not.protected void
writeToDestination
(byte[] bytes, int offset, int length) OverridesOutputStreamManager.writeToDestination(byte[], int, int)
to add support for file locking.Methods inherited from class org.apache.logging.log4j.core.appender.OutputStreamManager
closeOutputStream, drain, flush, flushBuffer, flushDestination, getByteBuffer, getManager, getOutputStream, hasOutputStream, isOpen, releaseSub, setOutputStream, skipFooter, write, write, write, writeBytes, writeBytes, writeFooter, writeHeader
Methods inherited from class org.apache.logging.log4j.core.appender.AbstractManager
close, getCount, getLoggerContext, getManager, getName, getStrSubstitutor, hasManager, log, logDebug, logError, logger, logWarn, narrow, release, stop, updateData
-
Constructor Details
-
FileManager
@Deprecated protected FileManager(String fileName, OutputStream os, boolean append, boolean locking, String advertiseURI, Layout<? extends Serializable> layout, int bufferSize, boolean writeHeader) Deprecated. -
FileManager
@Deprecated protected FileManager(String fileName, OutputStream os, boolean append, boolean locking, String advertiseURI, Layout<? extends Serializable> layout, boolean writeHeader, ByteBuffer buffer) Deprecated.- Since:
- 2.6
-
FileManager
@Deprecated protected FileManager(LoggerContext loggerContext, String fileName, OutputStream os, boolean append, boolean locking, boolean createOnDemand, String advertiseURI, Layout<? extends Serializable> layout, boolean writeHeader, ByteBuffer buffer) Deprecated.- Since:
- 2.7
-
FileManager
protected FileManager(LoggerContext loggerContext, String fileName, OutputStream os, boolean append, boolean locking, boolean createOnDemand, String advertiseURI, Layout<? extends Serializable> layout, String filePermissions, String fileOwner, String fileGroup, boolean writeHeader, ByteBuffer buffer) - Since:
- 2.9
-
-
Method Details
-
getFileManager
public static FileManager getFileManager(String fileName, boolean append, boolean locking, boolean bufferedIo, boolean createOnDemand, String advertiseUri, Layout<? extends Serializable> layout, int bufferSize, String filePermissions, String fileOwner, String fileGroup, Configuration configuration) Returns the FileManager.- Parameters:
fileName
- The name of the file to manage.append
- true if the file should be appended to, false if it should be overwritten.locking
- true if the file should be locked while writing, false otherwise.bufferedIo
- true if the contents should be buffered as they are written.createOnDemand
- true if you want to lazy-create the file (a.k.a. on-demand.)advertiseUri
- the URI to use when advertising the filelayout
- The layoutbufferSize
- buffer size for buffered IOfilePermissions
- File permissionsfileOwner
- File ownerfileGroup
- File groupconfiguration
- The configuration.- Returns:
- A FileManager for the File.
-
createOutputStream
- Overrides:
createOutputStream
in classOutputStreamManager
- Throws:
IOException
-
createParentDir
-
defineAttributeView
-
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 classOutputStreamManager
- 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.
-
writeToDestination
protected void writeToDestination(byte[] bytes, int offset, int length) OverridesOutputStreamManager.writeToDestination(byte[], int, int)
to add support for file locking.- Overrides:
writeToDestination
in classOutputStreamManager
- Parameters:
bytes
- the array containing dataoffset
- from where to writelength
- how many bytes to write- Since:
- 2.8
-
getFileName
Returns the name of the File being managed.- Returns:
- The name of the File being managed.
-
isAppend
public boolean isAppend()Returns the append status.- Returns:
- true if the file will be appended to, false if it is overwritten.
-
isCreateOnDemand
public boolean isCreateOnDemand()Returns the lazy-create.- Returns:
- true if the file will be lazy-created.
-
isLocking
public boolean isLocking()Returns the lock status.- Returns:
- true if the file will be locked when writing, false otherwise.
-
getBufferSize
public int getBufferSize()Returns the buffer size to use if the appender was configured with BufferedIO=true, otherwise returns a negative number.- Returns:
- the buffer size, or a negative number if the output stream is not buffered
-
getFilePermissions
Returns POSIX file permissions if defined and the OS supports POSIX file attribute, null otherwise.- Returns:
- File POSIX permissions
- See Also:
-
getFileOwner
Returns file owner if defined and the OS supports owner file attribute view, null otherwise.- Returns:
- File owner
- See Also:
-
getFileGroup
Returns file group if defined and the OS supports POSIX/group file attribute view, null otherwise.- Returns:
- File group
- See Also:
-
isAttributeViewEnabled
public boolean isAttributeViewEnabled()Returns true if file attribute view enabled for this file manager.- Returns:
- True if POSIX or owner supported and defined false otherwise.
-
getContentFormat
FileManager's content format is specified by:Key: "fileURI" Value: provided "advertiseURI" param
.- Overrides:
getContentFormat
in classAbstractManager
- Returns:
- Map of content format keys supporting FileManager
-