I'm investigating a problem a user is having with starting the latest release of Solr on Windows. This release is the first one we've made after upgrading log4j from 1.2.x to 2.11.0.
I have double-checked that the script starts the program with this commandline option: -Dlog4j.configurationFile="file:C:\Users\sheisey\Downloads\solr-7.4.0\server\scripts\cloud-scripts\log4j2.xml" This is what's actually in the .cmd file ... I used the 'echo' command to verify what the full commandline expands to: -Dlog4j.configurationFile="file:%DEFAULT_SERVER_DIR%\scripts\cloud-scripts\log4j2.xml" An exception is sent to stdout, which I will provide at the end of this message. In the exception, you may notice that the path it says it can't find has TWO "file:" elements in it, and two paths complete with "C:\" in them. The value of DEFAULT_SERVER_DIR is C:\Users\sheisey\Downloads\solr-7.4.0\server ... which is what's before the second "file:" in the exception, with the backslashes converted to forward slashes. Unless something is going very wrong with the windows command script language so that the commandline isn't actually what I've double-checked it to be, it looks like a problem in log4j ... one that might only exist on Windows. I'm running this on Windows 7 enterprise edition, the user on the Solr mailing list is running it on Windows 10 enterprise edition and running into the same problem. If I remove the "file:" prefix from the value assigned to the system property, so that it is a bare Windows path, everything works properly. This workaround was mentioned by the user on the Solr mailing list. The same thing on Linux appears to work correctly. This is the commandline option that ends up being used there: -Dlog4j.configurationFile=file:/index/src/solr-7.4.0/server/scripts/cloud-scripts/log4j2.xml Here's the exception that I get on Windows: ERROR StatusLogger Unable to access file:/C:/Users/sheisey/Downloads/solr-7.4.0/server/file:C:/Users/sheisey/Downloads/solr-7.4.0/server/scripts/cloud-scripts/log4j2.xml java.io.FileNotFoundException: C:\Users\sheisey\Downloads\solr-7.4.0\server\file:C:\Users\sheisey\Downloads\solr-7.4.0\server\scripts\cloud-scripts\log4j2.xml (The filename, directory name, or volume label syntax is incorrect) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.<init>(FileInputStream.java:138) at java.io.FileInputStream.<init>(FileInputStream.java:93) at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90) at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188) at java.net.URL.openStream(URL.java:1045) at org.apache.logging.log4j.core.config.ConfigurationSource.fromUri(ConfigurationSource.java:247) at org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:404) at org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:346) at org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(ConfigurationFactory.java:260) at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:615) at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:636) at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45) at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194) at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:121) at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:43) at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:46) at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:358) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383) at org.apache.solr.util.SolrCLI.<clinit>(SolrCLI.java:228) Is there any other information I can provide? You can download Solr at http://lucene.apache.org/solr if you need to reproduce and investigate the scripting that comes with it. Thanks, Shawn --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org