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
public class FileManager extends OutputStreamManager
Manages actual File I/O for File Appenders.
-
-
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
Constructors Modifier Constructor Description protected
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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected OutputStream
createOutputStream()
protected void
defineAttributeView(Path path)
int
getBufferSize()
Returns the buffer size to use if the appender was configured with BufferedIO=true, otherwise returns a negative number.Map<String,String>
getContentFormat()
FileManager's content format is specified by:Key: "fileURI" Value: provided "advertiseURI" param
.String
getFileGroup()
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.String
getFileName()
Returns the name of the File being managed.String
getFileOwner()
Returns file owner if defined and the OS supports owner file attribute view, null otherwise.Set<PosixFilePermission>
getFilePermissions()
Returns posix file permissions if defined and the OS supports posix file attribute, null otherwise.boolean
isAppend()
Returns the append status.boolean
isAttributeViewEnabled()
Returns true if file attribute view enabled for this file manager.boolean
isCreateOnDemand()
Returns the lazy-create.boolean
isLocking()
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
-
Methods inherited from class org.apache.logging.log4j.core.appender.AbstractManager
close, getCount, getLoggerContext, getManager, getName, hasManager, log, logDebug, logError, logger, logWarn, narrow, release, stop, updateData
-
-
-
-
Constructor Detail
-
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 Detail
-
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
protected OutputStream createOutputStream() throws IOException
- Overrides:
createOutputStream
in classOutputStreamManager
- Throws:
IOException
-
defineAttributeView
protected void defineAttributeView(Path path)
-
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
public String 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
public Set<PosixFilePermission> getFilePermissions()
Returns posix file permissions if defined and the OS supports posix file attribute, null otherwise.- Returns:
- File posix permissions
- See Also:
PosixFileAttributeView
-
getFileOwner
public String getFileOwner()
Returns file owner if defined and the OS supports owner file attribute view, null otherwise.- Returns:
- File owner
- See Also:
FileOwnerAttributeView
-
getFileGroup
public String getFileGroup()
Returns file group if defined and the OS supports posix/group file attribute view, null otherwise.- Returns:
- File group
- See Also:
PosixFileAttributeView
-
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
public Map<String,String> 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
-
-