public class FileManager extends OutputStreamManager
Modifier and Type | Class and Description |
---|---|
private static class |
FileManager.FactoryData
Factory Data.
|
private static class |
FileManager.FileManagerFactory
Factory to create a FileManager.
|
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
advertiseURI |
private boolean |
attributeViewEnabled |
private int |
bufferSize |
private boolean |
createOnDemand |
private static FileManager.FileManagerFactory |
FACTORY |
private java.lang.String |
fileGroup |
private java.lang.String |
fileOwner |
private java.util.Set<java.nio.file.attribute.PosixFilePermission> |
filePermissions |
private boolean |
isAppend |
private boolean |
isLocking |
byteBuffer, layout
count, LOGGER
Modifier | Constructor and Description |
---|---|
protected |
FileManager(LoggerContext loggerContext,
java.lang.String fileName,
java.io.OutputStream os,
boolean append,
boolean locking,
boolean createOnDemand,
java.lang.String advertiseURI,
Layout<? extends java.io.Serializable> layout,
boolean writeHeader,
java.nio.ByteBuffer buffer)
Deprecated.
|
protected |
FileManager(LoggerContext loggerContext,
java.lang.String fileName,
java.io.OutputStream os,
boolean append,
boolean locking,
boolean createOnDemand,
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) |
protected |
FileManager(java.lang.String fileName,
java.io.OutputStream os,
boolean append,
boolean locking,
java.lang.String advertiseURI,
Layout<? extends java.io.Serializable> layout,
boolean writeHeader,
java.nio.ByteBuffer buffer)
Deprecated.
|
protected |
FileManager(java.lang.String fileName,
java.io.OutputStream os,
boolean append,
boolean locking,
java.lang.String advertiseURI,
Layout<? extends java.io.Serializable> layout,
int bufferSize,
boolean writeHeader)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
protected java.io.OutputStream |
createOutputStream() |
protected void |
defineAttributeView(java.nio.file.Path path) |
int |
getBufferSize()
Returns the buffer size to use if the appender was configured with BufferedIO=true, otherwise returns a negative
number.
|
java.util.Map<java.lang.String,java.lang.String> |
getContentFormat()
FileManager's content format is specified by:
Key: "fileURI" Value: provided "advertiseURI" param . |
java.lang.String |
getFileGroup()
Returns file group if defined and the OS supports posix/group file attribute view,
null otherwise.
|
static FileManager |
getFileManager(java.lang.String fileName,
boolean append,
boolean locking,
boolean bufferedIo,
boolean createOnDemand,
java.lang.String advertiseUri,
Layout<? extends java.io.Serializable> layout,
int bufferSize,
java.lang.String filePermissions,
java.lang.String fileOwner,
java.lang.String fileGroup,
Configuration configuration)
Returns the FileManager.
|
java.lang.String |
getFileName()
Returns the name of the File being managed.
|
java.lang.String |
getFileOwner()
Returns file owner if defined and the OS supports owner file attribute view,
null otherwise.
|
java.util.Set<java.nio.file.attribute.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)
Overrides
OutputStreamManager.writeToDestination(byte[], int, int) to add support for file locking. |
closeOutputStream, drain, flush, flushBuffer, flushDestination, getByteBuffer, getManager, getOutputStream, hasOutputStream, isOpen, releaseSub, setOutputStream, skipFooter, write, write, write, writeBytes, writeBytes, writeFooter
close, getCount, getLoggerContext, getName, hasManager, log, logDebug, logError, logWarn, narrow, release, stop, updateData
private static final FileManager.FileManagerFactory FACTORY
private final boolean isAppend
private final boolean createOnDemand
private final boolean isLocking
private final java.lang.String advertiseURI
private final int bufferSize
private final java.util.Set<java.nio.file.attribute.PosixFilePermission> filePermissions
private final java.lang.String fileOwner
private final java.lang.String fileGroup
private final boolean attributeViewEnabled
@Deprecated protected FileManager(java.lang.String fileName, java.io.OutputStream os, boolean append, boolean locking, java.lang.String advertiseURI, Layout<? extends java.io.Serializable> layout, int bufferSize, boolean writeHeader)
@Deprecated protected FileManager(java.lang.String fileName, java.io.OutputStream os, boolean append, boolean locking, java.lang.String advertiseURI, Layout<? extends java.io.Serializable> layout, boolean writeHeader, java.nio.ByteBuffer buffer)
@Deprecated protected FileManager(LoggerContext loggerContext, java.lang.String fileName, java.io.OutputStream os, boolean append, boolean locking, boolean createOnDemand, java.lang.String advertiseURI, Layout<? extends java.io.Serializable> layout, boolean writeHeader, java.nio.ByteBuffer buffer)
protected FileManager(LoggerContext loggerContext, java.lang.String fileName, java.io.OutputStream os, boolean append, boolean locking, boolean createOnDemand, 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)
public static FileManager getFileManager(java.lang.String fileName, boolean append, boolean locking, boolean bufferedIo, boolean createOnDemand, java.lang.String advertiseUri, Layout<? extends java.io.Serializable> layout, int bufferSize, java.lang.String filePermissions, java.lang.String fileOwner, java.lang.String fileGroup, Configuration configuration)
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 ownerfileOwner
- File groupconfiguration
- The configuration.protected java.io.OutputStream createOutputStream() throws java.io.IOException
createOutputStream
in class OutputStreamManager
java.io.IOException
protected void defineAttributeView(java.nio.file.Path path)
protected void write(byte[] bytes, int offset, int length, boolean immediateFlush)
OutputStreamManager
write
in class OutputStreamManager
bytes
- The serialized Log event.offset
- The offset into the byte array.length
- The number of bytes to write.immediateFlush
- flushes immediately after writing.protected void writeToDestination(byte[] bytes, int offset, int length)
OutputStreamManager.writeToDestination(byte[], int, int)
to add support for file locking.writeToDestination
in class OutputStreamManager
bytes
- the array containing dataoffset
- from where to writelength
- how many bytes to writepublic java.lang.String getFileName()
public boolean isAppend()
public boolean isCreateOnDemand()
public boolean isLocking()
public int getBufferSize()
public java.util.Set<java.nio.file.attribute.PosixFilePermission> getFilePermissions()
PosixFileAttributeView
public java.lang.String getFileOwner()
FileOwnerAttributeView
public java.lang.String getFileGroup()
PosixFileAttributeView
public boolean isAttributeViewEnabled()
public java.util.Map<java.lang.String,java.lang.String> getContentFormat()
Key: "fileURI" Value: provided "advertiseURI" param
.getContentFormat
in class AbstractManager