Also - Since %DEFAULT_SERVER_DIR% doesn’t have a leading “/“ you might have to specify file:///.
Ralph > On Jul 3, 2018, at 3:56 PM, Ralph Goers <ralph.go...@dslextreme.com> wrote: > > What do you get if you change the -D to > log4j.configurationFile=“file://%DEFAULT_SERVER_DIR%\scripts\cloud-scripts\log4j2.xml”? > A normal file protocol on Windows shouldl end up looking like > file:///C:/path/to/file/file.txt. > > See https://blogs.msdn.microsoft.com/ie/2006/12/06/file-uris-in-windows/ > (just one of several links I found) to illustrate this. > > Ralph > >> On Jul 3, 2018, at 8:10 AM, Shawn Heisey <apa...@elyograg.org> wrote: >> >> 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 >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org