Parent class(*ch.qos.logback.core.FileAppender*):
...
protected String fileName = null;
public FileAppender() {
}
public void setFile(String file) {
if (file == null) {
fileName = file;
} else {
// Trim spaces from both ends. The users probably does not want
// trailing spaces in file names.
String val = file.trim();
fileName = val;
}
}
...
Дочерний класс:
...
public class FileAppender<E> extends ch.qos.logback.core.FileAppender<E> {
private FileResourceManager frm = new FileResourceManager(fileName, tempDir, false, loggerFacade);
public void writeOut(E event) throws IOException {
Object txId = null;
try {
frm.start();
txId = frm.generatedUniqueTxId();
frm.startTransaction(txId);
outputStream = frm.writeResource(txId, fileName, true);
outputStream.write(event.toString().getBytes());
frm.commitTransaction(txId);
}
catch (Exception e) {
...
}
}
Проблема в том, что fileName
передается как ноль в frm
в этой строке:
private FileResourceManager frm = new FileResourceManager(fileName, tempDir, false, loggerFacade);
Как я могу создатьfrm
экземпляр, с ненулевым fileName
, например, уже инициализированный в parent?