我正在尝试使用最新版本在Windows上设置Hazelcast log4j日志记录。
我添加了配置:
<properties>
<property name="hazelcast.logging.type">log4j</property>
</properties>
我从hazelcast bin文件夹中运行以下命令:
java -jar ..\lib\hazelcast-3.12.2.jar com.hazelcast.core.server.StartServer
这将产生以下错误:
Dec 20, 2019 8:44:56 AM com.hazelcast.config.AbstractConfigLocator
INFO: Loading 'hazelcast.xml' from the working directory.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at com.hazelcast.logging.Log4jFactory.createLogger(Log4jFactory.java:29)
at com.hazelcast.logging.LoggerFactorySupport$1.createNew(LoggerFactorySupport.java:32)
...
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
at java.net.URLClassLoader.findClass(Unknown Source)
...
我看到Hazelcast需要log4j版本1.2.17,所以我从maven下载了该版本并将其放在文件夹中。然后,我运行以下命令:
java -cp ..\..\log4j\log4j-1.2.17.jar -jar ..\lib\hazelcast-3.12.2.jar com.hazelcast.core.server.StartServer
但是,我读到您不能在同一条语句中指定类路径和jar。 hazelcast jar不包含log4j jar文件。似乎它们应该在包装时出现。
任何人都可以提供帮助。
以下由丹尼尔(Daniele)提供的答案:java -cp .... \ log4j \ log4j-1.2.17.jar; .. \ lib \ hazelcast-3.12.2.jar com.hazelcast.core.server.StartServer