4545public abstract class AbstractRangerAuditWriter implements RangerAuditWriter {
4646 private static final Logger logger = LoggerFactory .getLogger (AbstractRangerAuditWriter .class );
4747
48- public static final String PROP_FILESYSTEM_DIR = "dir" ;
49- public static final String PROP_FILESYSTEM_SUBDIR = "subdir" ;
50- public static final String PROP_FILESYSTEM_FILE_NAME_FORMAT = "filename.format" ;
51- public static final String PROP_FILESYSTEM_FILE_ROLLOVER = "file.rollover.sec" ;
52- public static final String PROP_FILESYSTEM_ROLLOVER_PERIOD = "file.rollover.period" ;
53- public static final String PROP_FILESYSTEM_FILE_EXTENSION = ".log" ;
48+ public static final String PROP_FILESYSTEM_DIR = "dir" ;
49+ public static final String PROP_FILESYSTEM_SUBDIR = "subdir" ;
50+ public static final String PROP_FILESYSTEM_FILE_NAME_FORMAT = "filename.format" ;
51+ public static final String PROP_FILESYSTEM_FILE_ROLLOVER = "file.rollover.sec" ;
52+ public static final String PROP_FILESYSTEM_ROLLOVER_PERIOD = "file.rollover.period" ;
53+ public static final String PROP_FILESYSTEM_FILE_EXTENSION = ".log" ;
54+ public static final String PROP_IS_APPEND_ON_EXCEPTIONS_ENABLED = ".append.on.exceptions.enabled" ;
5455
5556 public Configuration conf ;
5657 public FileSystem fileSystem ;
@@ -70,6 +71,7 @@ public abstract class AbstractRangerAuditWriter implements RangerAuditWriter {
7071 public Date nextRollOverTime ;
7172 public int fileRolloverSec = 24 * 60 * 60 ; // In seconds
7273 public boolean rollOverByDuration ;
74+ public boolean isAppendOnExceptionsEnabled ;
7375
7476 public volatile FSDataOutputStream ostream ; // output stream wrapped in logWriter
7577
@@ -225,11 +227,14 @@ public void init(Properties props, String propPrefix) {
225227 logFileNameFormat = "%app-type%_ranger_audit_%hostname%" + fileExtension ;
226228 }
227229
230+ isAppendOnExceptionsEnabled = MiscUtil .getBooleanProperty (props , propPrefix + PROP_IS_APPEND_ON_EXCEPTIONS_ENABLED , false );
231+
228232 logFolder = logFolderProp + "/" + logSubFolder ;
229233
230234 logger .info ("logFolder={}, destName={}" , logFolder , auditProviderName );
231235 logger .info ("logFileNameFormat={}, destName={}" , logFileNameFormat , auditProviderName );
232236 logger .info ("config={}" , auditConfigs );
237+ logger .info ("isAppendOnExceptionsEnabled={}" , isAppendOnExceptionsEnabled );
233238
234239 rolloverPeriod = MiscUtil .getStringProperty (props , propPrefix + "." + PROP_FILESYSTEM_ROLLOVER_PERIOD );
235240 rollingTimeUtil = RollingTimeUtil .getInstance ();
@@ -306,8 +311,8 @@ public PrintWriter createWriter() throws Exception {
306311 if (logWriter == null ) {
307312 boolean appendMode = false ;
308313
309- // if append is supported, reuse last log file
310- if (reUseLastLogFile && fileSystem .hasPathCapability (auditPath , CommonPathCapabilities .FS_APPEND )) {
314+ // if append is supported and enabled via config param , reuse last log file
315+ if (isAppendOnExceptionsEnabled && reUseLastLogFile && fileSystem .hasPathCapability (auditPath , CommonPathCapabilities .FS_APPEND )) {
311316 logger .info ("Appending to last log file. auditPath = {}" , fullPath );
312317
313318 try {
0 commit comments