OpenGrokLogger.java revision 1178
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * CDDL HEADER START
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * The contents of this file are subject to the terms of the
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * Common Development and Distribution License (the "License").
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * You may not use this file except in compliance with the License.
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * See LICENSE.txt included in this distribution for the specific
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * language governing permissions and limitations under the License.
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * When distributing Covered Code, include this CDDL HEADER in each
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * file and include the License file at LICENSE.txt.
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * If applicable, add the following below this CDDL HEADER, with the
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * fields enclosed by brackets "[]" replaced with your own identifying
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * information: Portions Copyright [yyyy] [name of copyright owner]
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * CDDL HEADER END
45be43296becb0d27a3414d29d9b4e3a1e3448b4Derek Gathright * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * Util class to set up Logging using the Console and FileLog formatter classes
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @author Jan S Berg
479b9ac417be02467aadae8cd650d29050001f0bSatyen Desai@SuppressWarnings({"PMD.MoreThanOneLogger", "PMD.SystemPrintln", "PMD.AvoidThrowingRawExceptionTypes"})
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glasspublic final class OpenGrokLogger {
d8d2286d8330892bb02eb2bf0735322f559ef5efSatyen Desai private final static Logger log = Logger.getLogger("org.opensolaris.opengrok");
d8d2286d8330892bb02eb2bf0735322f559ef5efSatyen Desai private static Level consoleLevel = Level.WARNING;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass public static void setConsoleLogLevel(Level level) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if (h instanceof ConsoleHandler) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @param level new level for console
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass public static void setOGConsoleLogLevel(Level level) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass for (Enumeration<String> e = LogManager.getLogManager().getLoggerNames();
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if (!loggerName.startsWith("org.opensolaris.opengrok")) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if (h instanceof FileHandler) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass public static void setFileLogPath(String path) throws IOException {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass throw new IOException("could not make logpath: " +
6bb97cfdea627b5bb0523ad4e6d2623c5fbf6954Satyen Desai logfile.append(File.separatorChar).append("opengrok%g.%u.log");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if (h instanceof FileHandler) {
6bb97cfdea627b5bb0523ad4e6d2623c5fbf6954Satyen Desai FileHandler nfh = new FileHandler(logfile.toString(),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass public static String setupLogger(String logpath, Level filelevel, Level consolelevel) throws IOException {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass throw new RuntimeException("could not make logpath: " +
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if (!jlp.canWrite() && !Level.OFF.equals(filelevel)) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass throw new IOException("logpath not writeable " + jlp.getAbsolutePath());
c32ac843533f2b40173501ca749de5d972f101c4Satyen Desai logfile.append(File.separatorChar).append("opengrok%g.%u.log");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass FileHandler fh = new FileHandler(logfile.toString(),
6bb97cfdea627b5bb0523ad4e6d2623c5fbf6954Satyen Desai System.err.println("Exception logging " + ex1);
6bb97cfdea627b5bb0523ad4e6d2623c5fbf6954Satyen Desai throw new IOException("Exception setting up logging " + ex1);
6bb97cfdea627b5bb0523ad4e6d2623c5fbf6954Satyen Desai private static void clearForeignHandlers() {
6bb97cfdea627b5bb0523ad4e6d2623c5fbf6954Satyen Desai for (Enumeration<String> e = LogManager.getLogManager().getLoggerNames();
6bb97cfdea627b5bb0523ad4e6d2623c5fbf6954Satyen Desai if (!loggerName.startsWith("org.opensolaris.opengrok")) {