Yep, will propose a safer way -- Jan Høydahl, search solution architect Cominvent AS - www.cominvent.com
> 22. sep. 2016 kl. 10.38 skrev Uwe Schindler <[email protected]>: > > Hi Janhoy, > > the commit breaks forbidden-apis checks, because direct usage of Log4J > instead of Slf4J warppers is not wanted for application code. I think this > one is special, so I'd move the silencer stuff to a private method that’s > called from init(). This private method could be @SuppressForbidden. Please > don't make the whole class or init() suppressed. > > I'd still add this in a huge try-catch block, so users not using log4j don't > break. We have similar stuff at other places, too. I think we also have a > separate class to initialize the logging system, so the DispatchFilter is the > wrong place for this to live: CheckLoggingConfiguration.java > > Uwe > > ----- > Uwe Schindler > H.-H.-Meier-Allee 63, D-28213 Bremen > http://www.thetaphi.de <http://www.thetaphi.de/> > eMail: [email protected] <mailto:[email protected]> > >> -----Original Message----- >> From: [email protected] <mailto:[email protected]> [mailto:[email protected] >> <mailto:[email protected]>] >> Sent: Thursday, September 22, 2016 1:21 AM >> To: [email protected] <mailto:[email protected]> >> Subject: lucene-solr:master: SOLR-8186: Solr start scripts, only log to >> console >> when running in foreground >> >> Repository: lucene-solr >> Updated Branches: >> refs/heads/master 7561461f7 -> 2ef34e9e2 >> >> >> SOLR-8186: Solr start scripts, only log to console when running in foreground >> >> >> Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo >> Commit: http://git-wip-us.apache.org/repos/asf/lucene- >> solr/commit/2ef34e9e >> Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/2ef34e9e >> Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/2ef34e9e >> >> Branch: refs/heads/master >> Commit: 2ef34e9e24ac2c0bd72de54c3edda9ba3aa43728 >> Parents: 7561461 >> Author: Jan HC8ydahl <[email protected] <mailto:[email protected]>> >> Authored: Thu Sep 22 01:18:27 2016 +0200 >> Committer: Jan HC8ydahl <[email protected] <mailto:[email protected]>> >> Committed: Thu Sep 22 01:18:27 2016 +0200 >> >> ---------------------------------------------------------------------- >> solr/CHANGES.txt | 3 +++ >> solr/bin/solr | 2 +- >> solr/bin/solr.cmd | 17 ++++++++++++----- >> .../java/org/apache/solr/core/CoreContainer.java | 4 +++- >> .../apache/solr/servlet/SolrDispatchFilter.java | 19 +++++++++++++++++++ >> solr/server/resources/log4j.properties | 4 ++-- >> solr/webapp/web/WEB-INF/web.xml | 17 +++++++++++++++++ >> 7 files changed, 57 insertions(+), 9 deletions(-) >> ---------------------------------------------------------------------- >> >> >> http://git-wip-us.apache.org/repos/asf/lucene- >> solr/blob/2ef34e9e/solr/CHANGES.txt >> ---------------------------------------------------------------------- >> diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt >> index 0119917..391381a 100644 >> --- a/solr/CHANGES.txt >> +++ b/solr/CHANGES.txt >> @@ -87,6 +87,9 @@ New Features >> >> * SOLR-9319: DELETEREPLICA can accept a 'count' and remove appropriate >> replicas (Nitin Sharma, noble) >> >> +* SOLR-8186: Reduce logging to logs/solr-<port>-console.log when not >> running in foreground mode >> + Show timestamp also in foreground log. Also removes some logging noise. >> (janhoy) >> + >> Bug Fixes >> ---------------------- >> >> >> http://git-wip-us.apache.org/repos/asf/lucene- >> solr/blob/2ef34e9e/solr/bin/solr >> ---------------------------------------------------------------------- >> diff --git a/solr/bin/solr b/solr/bin/solr >> index e2a665d..d3c6530 100755 >> --- a/solr/bin/solr >> +++ b/solr/bin/solr >> @@ -1547,7 +1547,7 @@ function launch_solr() { >> exec "$JAVA" "${SOLR_START_OPTS[@]}" $SOLR_ADDL_ARGS -jar start.jar >> "${SOLR_JETTY_CONFIG[@]}" >> else >> # run Solr in the background >> - nohup "$JAVA" "${SOLR_START_OPTS[@]}" $SOLR_ADDL_ARGS \ >> + nohup "$JAVA" "${SOLR_START_OPTS[@]}" $SOLR_ADDL_ARGS - >> Dsolr.log.muteconsole \ >> "-XX:OnOutOfMemoryError=$SOLR_TIP/bin/oom_solr.sh >> $SOLR_PORT $SOLR_LOGS_DIR" \ >> -jar start.jar "${SOLR_JETTY_CONFIG[@]}" \ >> 1>"$SOLR_LOGS_DIR/solr-$SOLR_PORT-console.log" 2>&1 & echo $! >>> "$SOLR_PID_DIR/solr-$SOLR_PORT.pid" >> >> http://git-wip-us.apache.org/repos/asf/lucene- >> solr/blob/2ef34e9e/solr/bin/solr.cmd >> ---------------------------------------------------------------------- >> diff --git a/solr/bin/solr.cmd b/solr/bin/solr.cmd >> index e9c8f84..2e6e6a9 100644 >> --- a/solr/bin/solr.cmd >> +++ b/solr/bin/solr.cmd >> @@ -968,15 +968,22 @@ IF "%FG%"=="1" ( >> REM run solr in the foreground >> title "Solr-%SOLR_PORT%" >> echo %SOLR_PORT%>"%SOLR_TIP%"\bin\solr-%SOLR_PORT%.port >> - "%JAVA%" %SERVEROPT% %SOLR_JAVA_MEM% %START_OPTS% >> %GCLOG_OPT%:"!SOLR_LOGS_DIR!"/solr_gc.log - >> Dlog4j.configuration="%LOG4J_CONFIG%" -DSTOP.PORT=!STOP_PORT! - >> DSTOP.KEY=%STOP_KEY% ^ >> - -Djetty.port=%SOLR_PORT% -Dsolr.solr.home="%SOLR_HOME%" - >> Dsolr.install.dir="%SOLR_TIP%" -Djetty.home="%SOLR_SERVER_DIR%" - >> Djava.io.tmpdir="%SOLR_SERVER_DIR%\tmp" -jar start.jar >> "%SOLR_JETTY_CONFIG%" >> + "%JAVA%" %SERVEROPT% %SOLR_JAVA_MEM% %START_OPTS% >> %GCLOG_OPT%:"!SOLR_LOGS_DIR!"/solr_gc.log ^ >> + -Dlog4j.configuration="%LOG4J_CONFIG%" -DSTOP.PORT=!STOP_PORT! - >> DSTOP.KEY=%STOP_KEY% ^ >> + -Djetty.port=%SOLR_PORT% -Dsolr.solr.home="%SOLR_HOME%" - >> Dsolr.install.dir="%SOLR_TIP%" ^ >> + -Djetty.home="%SOLR_SERVER_DIR%" - >> Djava.io.tmpdir="%SOLR_SERVER_DIR%\tmp" -jar start.jar >> "%SOLR_JETTY_CONFIG%" >> ) ELSE ( >> - START /B "Solr-%SOLR_PORT%" /D "%SOLR_SERVER_DIR%" "%JAVA%" >> %SERVEROPT% %SOLR_JAVA_MEM% %START_OPTS% >> %GCLOG_OPT%:"!SOLR_LOGS_DIR!"/solr_gc.log - >> Dlog4j.configuration="%LOG4J_CONFIG%" -DSTOP.PORT=!STOP_PORT! - >> DSTOP.KEY=%STOP_KEY% ^ >> - -Djetty.port=%SOLR_PORT% -Dsolr.solr.home="%SOLR_HOME%" - >> Dsolr.install.dir="%SOLR_TIP%" -Djetty.home="%SOLR_SERVER_DIR%" - >> Djava.io.tmpdir="%SOLR_SERVER_DIR%\tmp" -jar start.jar >> "%SOLR_JETTY_CONFIG%" > "!SOLR_LOGS_DIR!\solr-%SOLR_PORT%- >> console.log" >> + START /B "Solr-%SOLR_PORT%" /D "%SOLR_SERVER_DIR%" "%JAVA%" >> %SERVEROPT% %SOLR_JAVA_MEM% %START_OPTS% ^ >> + %GCLOG_OPT%:"!SOLR_LOGS_DIR!"/solr_gc.log - >> Dlog4j.configuration="%LOG4J_CONFIG%" -DSTOP.PORT=!STOP_PORT! ^ >> + -Dsolr.log.muteconsole ^ >> + -DSTOP.KEY=%STOP_KEY% -Djetty.port=%SOLR_PORT% - >> Dsolr.solr.home="%SOLR_HOME%" -Dsolr.install.dir="%SOLR_TIP%" ^ >> + -Djetty.home="%SOLR_SERVER_DIR%" - >> Djava.io.tmpdir="%SOLR_SERVER_DIR%\tmp" -jar start.jar ^ >> + "%SOLR_JETTY_CONFIG%" > "!SOLR_LOGS_DIR!\solr-%SOLR_PORT%- >> console.log" >> echo %SOLR_PORT%>"%SOLR_TIP%"\bin\solr-%SOLR_PORT%.port >> >> REM now wait to see Solr come online ... >> - "%JAVA%" %SOLR_SSL_OPTS% %SOLR_ZK_CREDS_AND_ACLS% - >> Dsolr.install.dir="%SOLR_TIP%" - >> Dlog4j.configuration="file:%DEFAULT_SERVER_DIR%\scripts\cloud- >> scripts\log4j.properties" ^ >> + "%JAVA%" %SOLR_SSL_OPTS% %SOLR_ZK_CREDS_AND_ACLS% - >> Dsolr.install.dir="%SOLR_TIP%" ^ >> + -Dlog4j.configuration="file:%DEFAULT_SERVER_DIR%\scripts\cloud- >> scripts\log4j.properties" ^ >> -classpath "%DEFAULT_SERVER_DIR%\solr-webapp\webapp\WEB- >> INF\lib\*;%DEFAULT_SERVER_DIR%\lib\ext\*" ^ >> org.apache.solr.util.SolrCLI status -maxWaitSecs 30 -solr >> !SOLR_URL_SCHEME!://%SOLR_TOOL_HOST%:%SOLR_PORT%/solr >> ) >> >> http://git-wip-us.apache.org/repos/asf/lucene- >> solr/blob/2ef34e9e/solr/core/src/java/org/apache/solr/core/CoreContainer. >> java >> ---------------------------------------------------------------------- >> diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java >> b/solr/core/src/java/org/apache/solr/core/CoreContainer.java >> index 0ccf2de..2a7e516 100644 >> --- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java >> +++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java >> @@ -441,7 +441,9 @@ public class CoreContainer { >> loader.addToClassLoader(SolrResourceLoader.getURLs(libPath)); >> loader.reloadLuceneSPI(); >> } catch (IOException e) { >> - log.warn("Couldn't add files from {} to classpath: {}", libPath, >> e.getMessage()); >> + if (!libDir.equals("lib")) { // Don't complain if default "lib" dir >> does not >> exist >> + log.warn("Couldn't add files from {} to classpath: {}", libPath, >> e.getMessage()); >> + } >> } >> } >> >> >> http://git-wip-us.apache.org/repos/asf/lucene- >> solr/blob/2ef34e9e/solr/core/src/java/org/apache/solr/servlet/SolrDispatch >> Filter.java >> ---------------------------------------------------------------------- >> diff --git >> a/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java >> b/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java >> index 17cd6b5..bbcd615 100644 >> --- a/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java >> +++ b/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java >> @@ -36,6 +36,9 @@ import java.lang.invoke.MethodHandles; >> import java.nio.file.Path; >> import java.nio.file.Paths; >> import java.util.ArrayList; >> +import java.util.Arrays; >> +import java.util.Enumeration; >> +import java.util.Locale; >> import java.util.Properties; >> import java.util.concurrent.atomic.AtomicBoolean; >> import java.util.concurrent.atomic.AtomicReference; >> @@ -46,6 +49,9 @@ import >> org.apache.commons.io.input.CloseShieldInputStream; >> import org.apache.commons.io.output.CloseShieldOutputStream; >> import org.apache.commons.lang.StringUtils; >> import org.apache.http.client.HttpClient; >> +import org.apache.log4j.Appender; >> +import org.apache.log4j.ConsoleAppender; >> +import org.apache.log4j.LogManager; >> import org.apache.solr.common.SolrException; >> import org.apache.solr.common.SolrException.ErrorCode; >> import org.apache.solr.common.cloud.SolrZkClient; >> @@ -110,9 +116,22 @@ public class SolrDispatchFilter extends BaseSolrFilter >> { >> >> public static final String SOLRHOME_ATTRIBUTE = "solr.solr.home"; >> >> + public static final String SOLR_LOG_MUTECONSOLE = >> "solr.log.muteconsole"; >> + >> @Override >> public void init(FilterConfig config) throws ServletException >> { >> + String muteConsole = System.getProperty(SOLR_LOG_MUTECONSOLE); >> + if (muteConsole != null && >> !Arrays.asList("false","0","off","no").contains(muteConsole.toLowerCase(Loc >> ale.ROOT))) { >> + Enumeration appenders = >> LogManager.getRootLogger().getAllAppenders(); >> + while (appenders.hasMoreElements()) { >> + Appender appender = (Appender) appenders.nextElement(); >> + if (appender instanceof ConsoleAppender) { >> + log.info("Property solr.log.muteconsole given. Muting >> ConsoleAppender named " + appender.getName()); >> + LogManager.getRootLogger().removeAppender(appender); >> + } >> + } >> + } >> log.info("SolrDispatchFilter.init(): {}", >> this.getClass().getClassLoader()); >> >> String exclude = config.getInitParameter("excludePatterns"); >> >> http://git-wip-us.apache.org/repos/asf/lucene- >> solr/blob/2ef34e9e/solr/server/resources/log4j.properties >> ---------------------------------------------------------------------- >> diff --git a/solr/server/resources/log4j.properties >> b/solr/server/resources/log4j.properties >> index d5ebcd1..672af4c 100644 >> --- a/solr/server/resources/log4j.properties >> +++ b/solr/server/resources/log4j.properties >> @@ -2,10 +2,10 @@ >> solr.log=logs >> log4j.rootLogger=INFO, file, CONSOLE >> >> +# Console appender will be programmatically disabled when Solr is started >> with option -Dsolr.log.muteconsole >> log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender >> - >> log4j.appender.CONSOLE.layout=org.apache.log4j.EnhancedPatternLayout >> -log4j.appender.CONSOLE.layout.ConversionPattern=%-4r %-5p (%t) >> [%X{collection} %X{shard} %X{replica} %X{core}] %c{1.} %m%n >> +log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd >> HH:mm:ss.SSS} %-5p (%t) [%X{collection} %X{shard} %X{replica} %X{core}] >> %c{1.} %m%n >> >> #- size rotation with log cleanup. >> log4j.appender.file=org.apache.log4j.RollingFileAppender >> >> http://git-wip-us.apache.org/repos/asf/lucene- >> solr/blob/2ef34e9e/solr/webapp/web/WEB-INF/web.xml >> ---------------------------------------------------------------------- >> diff --git a/solr/webapp/web/WEB-INF/web.xml b/solr/webapp/web/WEB- >> INF/web.xml >> index 24a27ae..5278ae5 100644 >> --- a/solr/webapp/web/WEB-INF/web.xml >> +++ b/solr/webapp/web/WEB-INF/web.xml >> @@ -164,4 +164,21 @@ >> <welcome-file>index.html</welcome-file> >> </welcome-file-list> >> >> + <!-- Get rid of error message --> >> + <security-constraint> >> + <web-resource-collection> >> + <web-resource-name>Disable TRACE</web-resource-name> >> + <url-pattern>/</url-pattern> >> + <http-method>TRACE</http-method> >> + </web-resource-collection> >> + <auth-constraint/> >> + </security-constraint> >> + <security-constraint> >> + <web-resource-collection> >> + <web-resource-name>Enable everything but TRACE</web-resource- >> name> >> + <url-pattern>/</url-pattern> >> + <http-method-omission>TRACE</http-method-omission> >> + </web-resource-collection> >> + </security-constraint> >> + >> </web-app> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > <mailto:[email protected]> > For additional commands, e-mail: [email protected] > <mailto:[email protected]>
