Skip to content

Commit a2f2baa

Browse files
author
Jacob Silterra
committed
Redo some logging
Should have better logging during startup, same everywhere else
1 parent 60ff72b commit a2f2baa

File tree

4 files changed

+35
-15
lines changed

4 files changed

+35
-15
lines changed

src/log4j.properties

+9
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,15 @@
1414
#e.g. java -jar -Xmx2g -Dlog4j.configuration=log4j_debug.properties igv.jar
1515
log4j.rootLogger=INFO, stdout
1616

17+
log4j.appender.stdout.Target=System.out
1718
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
1819
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
1920
log4j.appender.stdout.layout.ConversionPattern=%p [%d{ISO8601}] [%F:%L] [%t] %m%n
21+
22+
#Don't want to double log, so we aren't using this now
23+
log4j.appender.stderr.Threshold=ERROR
24+
log4j.appender.stderr.Target=System.err
25+
log4j.appender.stderr=org.apache.log4j.ConsoleAppender
26+
log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
27+
log4j.appender.stderr.layout.ConversionPattern=%p [%d{ISO8601}] [%F:%L] [%t] %m%n
28+

src/log4j_all.properties

+8
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,15 @@
1111

1212
log4j.rootLogger=ALL, stdout
1313

14+
log4j.appender.stdout.Target=System.out
1415
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
1516
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
1617
log4j.appender.stdout.layout.ConversionPattern=%p [%d{ISO8601}] [%F:%L] [%t] %m%n
1718

19+
#Don't want to double log, so we aren't using this now
20+
log4j.appender.stderr.Threshold=ERROR
21+
log4j.appender.stderr.Target=System.err
22+
log4j.appender.stderr=org.apache.log4j.ConsoleAppender
23+
log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
24+
log4j.appender.stderr.layout.ConversionPattern=%p [%d{ISO8601}] [%F:%L] [%t] %m%n
25+

src/log4j_debug.properties

+7
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,14 @@
1111

1212
log4j.rootLogger=DEBUG, stdout
1313

14+
log4j.appender.stdout.Target=System.out
1415
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
1516
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
1617
log4j.appender.stdout.layout.ConversionPattern=%p [%d{ISO8601}] [%F:%L] [%t] %m%n
1718

19+
#Don't want to double log, so we aren't using this now
20+
log4j.appender.stderr.Threshold=ERROR
21+
log4j.appender.stderr.Target=System.err
22+
log4j.appender.stderr=org.apache.log4j.ConsoleAppender
23+
log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
24+
log4j.appender.stderr.layout.ConversionPattern=%p [%d{ISO8601}] [%F:%L] [%t] %m%n

src/org/broad/igv/DirectoryManager.java

+11-15
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ private static File getUserHome() {
5555
*/
5656
public static synchronized File getUserDirectory() {
5757
if (USER_DIRECTORY == null) {
58-
System.out.print("Fetching user directory... ");
58+
log.info("Fetching user directory... ");
5959
USER_DIRECTORY = FileSystemView.getFileSystemView().getDefaultDirectory();
6060
//Mostly for testing, in some environments USER_DIRECTORY can be null
6161
if (USER_DIRECTORY == null) {
@@ -104,7 +104,7 @@ public static File getIgvDirectory() {
104104
try {
105105
boolean wasSuccessful = IGV_DIRECTORY.mkdir();
106106
if (!wasSuccessful) {
107-
System.err.println("Failed to create user directory!");
107+
log.error("Failed to create user directory!");
108108
IGV_DIRECTORY = null;
109109
}
110110
} catch (Exception e) {
@@ -168,8 +168,7 @@ private static File getIgvDirectoryOverride() {
168168
} catch (Exception e) {
169169
userPrefs.remove(IGV_DIR_USERPREF);
170170
override = null;
171-
System.err.println("Error creating user directory");
172-
e.printStackTrace();
171+
log.error("Error creating user directory", e);
173172
}
174173
return override;
175174
}
@@ -412,35 +411,32 @@ private static boolean canWrite(File directory) {
412411
public static void initializeLog() {
413412

414413
Logger logger = Logger.getRootLogger();
415-
ConsoleAppender consoleAppender = new ConsoleAppender();
416-
//Add console appender so we at least do some logging, somewhere,
417-
//during this initialization process
418414
PatternLayout layout = new PatternLayout();
419415
layout.setConversionPattern("%p [%d{ISO8601}] [%F:%L] %m%n");
420-
consoleAppender.setLayout(layout);
421-
consoleAppender.setThreshold(Level.ALL);
422-
logger.addAppender(consoleAppender);
423416

417+
//Temp appender just used while initializing log
418+
//If something goes wrong here we want a log of it
419+
ConsoleAppender tempAppender = new ConsoleAppender(layout, "System.err");
420+
logger.addAppender(tempAppender);
424421

425422
// Create a log file that is ready to have text appended to it
426423
try {
427424
File logFile = getLogFile();
428425
RollingFileAppender appender = new RollingFileAppender();
429426
appender.setName("IGV_ROLLING_APPENDER");
430427
appender.setFile(logFile.getAbsolutePath());
428+
//Will actually inherit from root logger
431429
appender.setThreshold(Level.ALL);
432430
appender.setMaxFileSize("1000KB");
433431
appender.setMaxBackupIndex(1);
434432
appender.setLayout(layout);
435433
appender.setAppend(true);
436434
appender.activateOptions();
437435
logger.addAppender(appender);
438-
//If we make it here, we don't need to log to console
439-
logger.removeAppender(consoleAppender);
436+
logger.removeAppender(tempAppender);
440437
} catch (IOException e) {
441-
// Can't create log file, just log to console
442-
System.err.println("Error creating log file");
443-
e.printStackTrace();
438+
// Can't create log file, just log to console as set in log4j.properties
439+
log.error("Error creating log file", e);
444440
}
445441
}
446442
}

0 commit comments

Comments
 (0)