* resolve relative log-file paths against {appdata}/logs

This commit is contained in:
Reinhard Pointner 2013-04-02 12:32:45 +00:00
parent 84075b35c8
commit efa024ccd2
2 changed files with 9 additions and 12 deletions

View File

@ -94,9 +94,16 @@ public class Main {
// tee stdout and stderr to log file if set
if (args.logFile != null) {
File logFile = args.getLogFile();
FileChannel logChannel = new FileOutputStream(logFile, true).getChannel();
File logFile = new File(args.logFile);
if (!logFile.isAbsolute()) {
logFile = new File(new File(getApplicationFolder(), "logs"), logFile.getPath()).getAbsoluteFile(); // by default resolve relative paths against {applicationFolder}/logs/{logFile}
}
if (!logFile.exists() && !logFile.getParentFile().mkdirs() && !logFile.createNewFile()) {
throw new IOException("Failed to create log file: " + logFile);
}
// open file channel and lock
FileChannel logChannel = new FileOutputStream(logFile, true).getChannel();
if (args.logLock) {
System.out.println("Locking " + logFile);
logChannel.lock();

View File

@ -6,7 +6,6 @@ import static java.util.Collections.*;
import static net.sourceforge.tuned.FileUtilities.*;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
@ -188,13 +187,4 @@ public class ArgumentBean {
return Level.parse(log.toUpperCase());
}
public File getLogFile() throws IOException {
File f = new File(logFile).getAbsoluteFile();
if (!f.exists() && !f.getParentFile().mkdirs() && !f.createNewFile()) {
throw new IOException("Failed to create log file: " + f);
}
return f;
}
}