Lines 30-35
Link Here
|
30 |
import org.w3c.dom.Element; |
30 |
import org.w3c.dom.Element; |
31 |
|
31 |
|
32 |
import java.io.File; |
32 |
import java.io.File; |
|
|
33 |
import java.io.FileNotFoundException; |
33 |
import java.io.FileOutputStream; |
34 |
import java.io.FileOutputStream; |
34 |
import java.io.IOException; |
35 |
import java.io.IOException; |
35 |
import java.io.OutputStream; |
36 |
import java.io.OutputStream; |
Lines 284-292
Link Here
|
284 |
} |
285 |
} |
285 |
} else { |
286 |
} else { |
286 |
Writer newWriter = |
287 |
Writer newWriter = |
287 |
createWriter( |
288 |
createWriter(createFileOutputStream(rollover.getActiveFileName(), rollover.getAppend())); |
288 |
new FileOutputStream( |
|
|
289 |
rollover.getActiveFileName(), rollover.getAppend())); |
290 |
closeWriter(); |
289 |
closeWriter(); |
291 |
setFile(rollover.getActiveFileName()); |
290 |
setFile(rollover.getActiveFileName()); |
292 |
this.qw = createQuietWriter(newWriter); |
291 |
this.qw = createQuietWriter(newWriter); |
Lines 336-341
Link Here
|
336 |
} |
335 |
} |
337 |
|
336 |
|
338 |
/** |
337 |
/** |
|
|
338 |
* Creates a new FileOutputStream of a new log file, possibly creating first all the needed parent directories |
339 |
* |
340 |
* @param newFileName Filename of new log file to be created |
341 |
* @param append If file should be appended |
342 |
* @return newly created FileOutputStream |
343 |
* @throws FileNotFoundException if creating log file or parent directories was unsuccessful |
344 |
*/ |
345 |
private FileOutputStream createFileOutputStream(String newFileName, boolean append) throws FileNotFoundException { |
346 |
try { |
347 |
// |
348 |
// attempt to create file |
349 |
// |
350 |
return new FileOutputStream(newFileName, append); |
351 |
} catch(FileNotFoundException ex) { |
352 |
// |
353 |
// if parent directory does not exist then |
354 |
// attempt to create it and try to create file |
355 |
// see bug 9150 |
356 |
// |
357 |
String parentName = new File(newFileName).getParent(); |
358 |
if (parentName != null) { |
359 |
File parentDir = new File(parentName); |
360 |
if(!parentDir.exists() && parentDir.mkdirs()) { |
361 |
return new FileOutputStream(newFileName, append); |
362 |
} else { |
363 |
throw ex; |
364 |
} |
365 |
} else { |
366 |
throw ex; |
367 |
} |
368 |
} |
369 |
} |
370 |
|
371 |
/** |
339 |
* {@inheritDoc} |
372 |
* {@inheritDoc} |
340 |
*/ |
373 |
*/ |
341 |
protected void subAppend(final LoggingEvent event) { |
374 |
protected void subAppend(final LoggingEvent event) { |