From b37f2a1a8337a0ce0cfe094acd397bdffe87a070 Mon Sep 17 00:00:00 2001 From: vladt Date: Thu, 10 Mar 2011 13:30:35 -0500 Subject: 339567: Log to console only if -consoleLog was passed as arg to eclipse --- .../logback/appender/ConsoleAppenderFilter.java | 38 ++++++++++++++++++++++ .../defaultLogbackConfiguration/logback.xml | 1 + .../m2e/logback/configuration/LogPlugin.java | 28 ++++++++++++---- 3 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 org.eclipse.m2e.logback.appender/src/main/java/org/eclipse/m2e/logback/appender/ConsoleAppenderFilter.java diff --git a/org.eclipse.m2e.logback.appender/src/main/java/org/eclipse/m2e/logback/appender/ConsoleAppenderFilter.java b/org.eclipse.m2e.logback.appender/src/main/java/org/eclipse/m2e/logback/appender/ConsoleAppenderFilter.java new file mode 100644 index 00000000..ad680b4a --- /dev/null +++ b/org.eclipse.m2e.logback.appender/src/main/java/org/eclipse/m2e/logback/appender/ConsoleAppenderFilter.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright (c) 2011 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Sonatype, Inc. - initial API and implementation + *******************************************************************************/ +package org.eclipse.m2e.logback.appender; + +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.filter.Filter; +import ch.qos.logback.core.spi.FilterReply; + +import org.eclipse.core.runtime.adaptor.EclipseStarter; +import org.eclipse.osgi.framework.internal.core.FrameworkProperties; + + +/** + * Filters out (disables) logging to console if -consoleLog was passed as arg to eclipse + */ +@SuppressWarnings("restriction") +public class ConsoleAppenderFilter extends Filter { + private boolean consoleLogEnabled; + + public ConsoleAppenderFilter() { + consoleLogEnabled = "true".equals(FrameworkProperties.getProperty(EclipseStarter.PROP_CONSOLE_LOG)); + } + + public FilterReply decide(ILoggingEvent loggingEvent) { + if(consoleLogEnabled) { + return FilterReply.NEUTRAL; + } + return FilterReply.DENY; + } +} diff --git a/org.eclipse.m2e.logback.configuration/defaultLogbackConfiguration/logback.xml b/org.eclipse.m2e.logback.configuration/defaultLogbackConfiguration/logback.xml index d4f09c2c..d086c568 100644 --- a/org.eclipse.m2e.logback.configuration/defaultLogbackConfiguration/logback.xml +++ b/org.eclipse.m2e.logback.configuration/defaultLogbackConfiguration/logback.xml @@ -3,6 +3,7 @@ %date [%thread] %-5level %logger{35} - %msg%n + diff --git a/org.eclipse.m2e.logback.configuration/src/org/eclipse/m2e/logback/configuration/LogPlugin.java b/org.eclipse.m2e.logback.configuration/src/org/eclipse/m2e/logback/configuration/LogPlugin.java index 375e7c2d..cf3599d0 100644 --- a/org.eclipse.m2e.logback.configuration/src/org/eclipse/m2e/logback/configuration/LogPlugin.java +++ b/org.eclipse.m2e.logback.configuration/src/org/eclipse/m2e/logback/configuration/LogPlugin.java @@ -33,8 +33,11 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Plugin; import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.adaptor.EclipseStarter; +import org.eclipse.osgi.framework.internal.core.FrameworkProperties; +@SuppressWarnings("restriction") public class LogPlugin extends Plugin { private static final String PLUGIN_ID = "org.eclipse.m2e.logback.configuration"; //$NON-NLS-1$ @@ -66,13 +69,14 @@ public class LogPlugin extends Plugin { // The standard logback config file property is set - don't force our configuration systemOut(ContextInitializer.CONFIG_FILE_PROPERTY + "=" //$NON-NLS-1$ + System.getProperty(ContextInitializer.CONFIG_FILE_PROPERTY)); + return; + } + + if(!Platform.getInstanceLocation().isSet()) { + systemOut("The " + PLUGIN_ID + " bundle was activated before the platform instance location was initialized."); //$NON-NLS-1$ //$NON-NLS-2$ + timer.schedule(timerTask, 0 /*delay*/, 50 /*period*/); } else { - if(!Platform.getInstanceLocation().isSet()) { - systemOut("The " + PLUGIN_ID + " bundle was activated before the platform instance location was initialized."); //$NON-NLS-1$ //$NON-NLS-2$ - timer.schedule(timerTask, 0 /*delay*/, 50 /*period*/); - } else { - configureLogback(); - } + configureLogback(); } } @@ -164,7 +168,17 @@ public class LogPlugin extends Plugin { configurator.setContext(lc); configurator.doConfigure(configFile); - StatusPrinter.printInCaseOfErrorsOrWarnings(lc); + systemOut(EclipseStarter.PROP_CONSOLE_LOG + "=" + FrameworkProperties.getProperty(EclipseStarter.PROP_CONSOLE_LOG)); + boolean consoleLog = "true".equals(FrameworkProperties.getProperty(EclipseStarter.PROP_CONSOLE_LOG)); + if(consoleLog) { + StatusPrinter.printInCaseOfErrorsOrWarnings(lc); +// } else { +// Logger logger = (Logger) LoggerFactory.getLogger("root"); +// Appender consoleAppender = logger.getAppender("STDOUT"); +// if(consoleAppender != null && consoleAppender.isStarted()) { +// consoleAppender.stop(); +// } + } LogHelper.logJavaProperties(LoggerFactory.getLogger(LogPlugin.class)); } -- cgit v1.2.3