网格增益日志记录配置问题



我开始玩GridGain了(恭喜你开源了!)

我正在尝试将其嵌入到另一个应用程序中,因此我需要使用 JCL 日志记录而不是 Log4j。

我的简单代码如下所示(是的,它是时髦的代码):

    def cfg = new GridConfiguration()
    cfg.setGridLogger( new GridJclLogger() )
    cfg.setLifecycleBeans(new DaemonLifecycleBean())
    def grid = GridGain.start(cfg); 

但我在下面得到例外。如果我配置 JCL 日志记录,为什么它会抱怨缺少 Log4j?

Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/varia/LevelRangeFilter
    at org.gridgain.grid.kernal.GridKernal.createNodeAttributes(GridKernal.java:1187) ~[gridgain-platform-6.0.2.jar:na]
    at org.gridgain.grid.kernal.GridKernal.start(GridKernal.java:608) ~[gridgain-platform-6.0.2.jar:na]
    at org.gridgain.grid.kernal.GridGainEx$GridNamedInstance.start0(GridGainEx.java:1828) ~[gridgain-platform-6.0.2.jar:na]
    ... 21 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.varia.LevelRangeFilter
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[na:1.7.0_51]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_51]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_51]
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_51]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[na:1.7.0_51]

目前 GridGain 对 log4j 有明确的依赖关系,所以你需要将 log4j 类保留在节点类路径中。

此依赖项将在即将发布的发行版中删除,然后您将能够使用 JCL 记录器运行节点,而无需在类路径中使用 log4j。

最新更新