我正在尝试使用最新版本在Windows上设置Hazelcast log4j日志记录。
我添加了配置:
<properties>
<property name="hazelcast.logging.type">log4j</property>
</properties>
我从 hazelcast bin 文件夹中运行以下命令:
java -jar ..libhazelcast-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 ....log4jlog4j-1.2.17.jar -jar ..libhazelcast-3.12.2.jar com.hazelcast.core.server.StartServer
但是,我已经读到您不能在同一语句中指定类路径和 jar。榛子罐不包含 log4j jar 文件。似乎它们应该在包装时。
任何人都可以帮忙吗?
为了告诉 log4j 如何获取配置文件,您必须在配置文件中添加以下行:
<property name="log4j2.configuration">/path/to/properties/log4j2.properties</property>
所以它看起来像这样:
<properties>
<property name="hazelcast.logging.type">log4j</property>
<property name="log4j2.configuration">/path/to/properties/log4j2.properties</property>
</properties>
然后,您必须编辑 log4j2.properties 文件,如文档中所述:https://docs.hazelcast.org/docs/latest/manual/html-single/index.html#logging-configuration