use of org.opensolaris.opengrok.logger.formatter.ConsoleFormatter in project OpenGrok by OpenGrok.
the class LoggerUtil method initLogger.
public static String initLogger(String logpath, Level filelevel, Level consolelevel) throws IOException {
if (logpath != null) {
File jlp = new File(logpath);
if (!jlp.exists() && !jlp.mkdirs()) {
throw new RuntimeException("could not make logpath: " + jlp.getAbsolutePath());
}
if (!jlp.canWrite() && !Level.OFF.equals(filelevel)) {
throw new IOException("logpath not writeable " + jlp.getAbsolutePath());
}
}
Logger.getGlobal().setLevel(Level.OFF);
getBaseLogger().setLevel(Level.ALL);
StringBuilder logfile = new StringBuilder();
logfile.append(logpath == null ? "%t" : logpath);
logfile.append(File.separatorChar).append("opengrok%g.%u.log");
try {
FileHandler fh = new FileHandler(logfile.toString(), loggerIntProperty("java.util.logging.FileHandler.limit", DEFAULT_FILEHANDLER_LIMIT), loggerIntProperty("java.util.logging.FileHandler.count", DEFAULT_FILEHANDLER_COUNT));
fh.setLevel(filelevel);
String formatter = LogManager.getLogManager().getProperty("java.util.logging.FileHandler.formatter");
try {
fh.setFormatter((Formatter) Class.forName(formatter).newInstance());
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
fh.setFormatter(new FileLogFormatter());
}
getBaseLogger().addHandler(fh);
loggerFile = logfile.toString();
ConsoleHandler ch = new ConsoleHandler();
ch.setLevel(consolelevel);
ch.setFormatter(new ConsoleFormatter());
getBaseLogger().addHandler(ch);
} catch (IOException | SecurityException ex1) {
LOGGER.log(Level.SEVERE, "Exception logging", ex1);
throw new IOException("Exception setting up logging " + ex1);
}
return logpath;
}
Aggregations