log4j LogManager.getLogger陷入了无限循环

时间:2013-07-24 15:43:09

标签: java log4j

由于一些奇怪的原因,我有一行代码陷入无限循环。 这是一行:

this.logger = LogManager.getLogger(getClass().getName());

一些上下文可能会有所帮助:
我有一台机器存储所有代码和java .class文件。我通过sshfs访问此计算机,并通过Eclipse直接处理.java文件。

如果我登录远程计算机并执行我的类,代码将运行:

$ ssh remote-machine
$ cd /path/to/eclipse-project
$ export CLASSPATH="..." # A bunch of required libraries, including
                         # log4j-api-2.0-beta7.jar and log4j-core-2.0-beta7.jar
$ java path.to.MyClass
Welcome, please do stuff
>>>

如果我使用我机器上安装的sshfs文件系统:

$ cd /mount-point/to/remote-machine
$ cd path/to/eclipse-project
$ export CLASSPATH="..."
$ java path.to.MyClass
<nothing happens>

我通过Eclipse调试确定LogManager#getLogger是罪魁祸首。事实上,进一步深入,我发现有一个以index=2开头的循环,只有在class==null ClassLoaderContextSelector.java:86时才会终止。

0 个答案:

没有答案