The version of Apache log4j used by SoundHelix.
Clone
HTTPS:
git clone https://vervis.peers.community/repos/aEp6o
SSH:
git clone USERNAME@vervis.peers.community:aEp6o
Branches
Tags
- 1.3alpha-7
- CHAINSAW_2_SANDBOX_MERGE
- CORE_VERSION
- LEVEL_REPLACES_PRIORITY
- PREALPHA_1_3_AS_OF_2004_05_12
- PRE_CHAINSAW_MODEL_CONVERSION
- PRE_UGLI_MOVE
- TAG_CHAINSAW2_MOVE
- log4j-1.2.17
- log4j-1.2.17-rc1
- v1.3alpha8
- v1.3alpha8-temp
- v1_2_1
- v1_2_10-recalled
- v1_2_11
- v1_2_11_rc1
- v1_2_11rc3
- v1_2_12
- v1_2_12_rc1
- v1_2_12_rc2
- v1_2_12_rc3
- v1_2_12_rc4
- v1_2_12_rc5
- v1_2_12_rc6
- v1_2_13
- v1_2_13_rc1
- v1_2_13_rc2
- v1_2_13_site_update
- v1_2_14
- v1_2_14_maven
- v1_2_14_rc1
- v1_2_14_site_update
- v1_2_15
- v1_2_15_rc1
- v1_2_15_rc2
- v1_2_15_rc3
- v1_2_15_rc4
- v1_2_15_rc5
- v1_2_15_rc6
- v1_2_16
- v1_2_16_rc1
- v1_2_16_rc2
- v1_2_17
- v1_2_17-rc1
- v1_2_17_rc1
- v1_2_17_rc2
- v1_2_17_rc3
- v1_2_2
- v1_2_3
- v1_2_4
- v1_2_6
- v1_2_7
- v1_2_9
- v1_2_alpha0
- v1_2_alpha7
- v1_2beta1
- v1_2final
- v1_3alpha_1
- v1_3alpha_6
- v_1_0
- v_1_0_1
- v_1_0_4
- v_1_1
- v_1_1_1
- v_1_1_2
- v_1_1_3
- v_1_1_b1
- v_1_1b2
- v_1_1b3
- v_1_1b5
- v_1_1b6
- v_1_1b7
- v_1_2beta3
ResilientFileAppender.java
package org.apache.log4j.varia;
import java.io.File;
import java.io.IOException;
import java.io.Writer;
import java.io.FileWriter;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import org.apache.log4j.helpers.LogLog;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Layout;
/**
This appender is resilient against moving of the log output
file. Before every write operation, it checks whether the target
log file has been moved by an external process. If that is the
case, a new output file is created.
<p>This method of detecting externally triggered roll overs has the
following disadvantages:
<ul>
<li>It adds the overhead of calling File.exists method before each
write.
<li>It is not guaranteed to work on all environments. For example,
on Windows NT, it is not possible to move an already open file.
<li>Since there is no proper synchronization between the external
process and the JVM doing the logging, race conditions are possible
and can result in the loss of log records.
</ul>
For all these reasons, it is recommended that you use the {@link
ExternallyRolledFileAppender}.
@author Ceki Gülcü
@since version 0.9.0 */
public class ResilientFileAppender extends FileAppender {
File file;
/**
Thia default constructor does nothing but call its super-class
constructor. */
public
ResilientFileAppender() {
}
/**
This constructor does nothing but call its super-class constructor
with the same parameters. */
public
ResilientFileAppender(Layout layout, Writer writer) {
super(layout, writer);
}
/**
*/
protected
boolean checkEntryConditions() {
if(!super.checkEntryConditions()) {
return false;
}
if((file != null) && !file.exists()) {
// the file has been removed under our feet.
// we call our super-classes' setFile method to close the current writer
// reference and open a new file.
file = new File(fileName);
try {
setFile(fileName);
} catch(java.io.IOException e) {
LogLog.error("setFile("+fileName+","+ fileAppend+") call failed.", e);
}
}
return true;
}
public
void setFile(String fileName, boolean append) throws IOException {
super.setFile(fileName, append);
file = new File(fileName);
}
protected
void reset() {
super.reset();
file = null;
}
}