Can't enable logger.
johnzeng opened this issue · comments
Actual behavior (Required!)
After adding
let g:JavaComplete_JavaviLogDirectory = '/Users/johnvzeng/javalog'
let g:JavaComplete_JavaviLogLevel = 'debug'
to my vimfile, I can't get log in dir javalog, the error is saying:
ERROR StatusLogger File not found in file system or classpath: /Users/johnvzeng/.vim/bundle/vim-javacomplete2/libs/javavi/target/classes/log4j2.xml
ERROR StatusLogger Reconfiguration failed: No configuration found for '4f8e5cde' at 'null' in 'null'
in javavi_stdout.log
If I use log4j2.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
In vi, there is a message tells that the javavi is recompiled, and then this log4j2.xml file is deleted.
but if I change Root level
to error, it can log some error stack
Exception in thread "Thread-3" java.lang.NullPointerException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:590)
at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:668)
at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:726)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:430)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:594)
at kg.ash.javavi.searchers.PackagesLoader.collectPackages(PackagesLoader.java:21)
at kg.ash.javavi.cache.Cache.lambda$collectPackages$0(Cache.java:55)
at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.NullPointerException
at kg.ash.javavi.searchers.ClasspathCollector.collectClassPath(ClasspathCollector.java:30)
at kg.ash.javavi.searchers.ClasspathPackageSearcher.loadEntries(ClasspathPackageSearcher.java:23)
at kg.ash.javavi.searchers.PackagesLoader.lambda$collectPackages$0(PackagesLoader.java:21)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1494)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:747)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:283)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1603)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175)
looks like I get some error no java.ext.dirs
, I wanna find it out so I added a debug log to log what java.ext.dirs is, but it's not working.
public List<String> collectClassPath() {
List<String> result = new ArrayList<>();
String extdirs = System.getProperty("java.ext.dirs");
logger.debug("the extdirs are: " + extdirs);
if (extdirs != null) {
Stream.of(extdirs.split(pSep))
.map(path -> addPathFromDir(path + File.separator))
.forEach(result::addAll);
}
Expected behavior (Required!)
1, log the debug message
2,handle the java.ext.dirs properly
The steps to reproduce actual behavior (Required!)
- in a maven project, import from a local lib
- try to do completing
- it just happend
Environment (Required!)
- OS: MACOS
- Vim version:
- Neovim version: VIM v0.2.1
Q&A
- Yes, I tried minimal .vimrc configuraion.
- Yes, I have enabled logs with
JCdebugEnableLogs
and can put here content ofJCdebugGetLogContent
command, if you need. - Even, if you wish, I can set
g:JavaComplete_JavaviLogLevel
to'debug'
, then setg:JavaComplete_JavaviLogDirectory
, and put here server logs, too.
Screenshot (Optional)
The output of :redir and :message (Optional)
Is this issue still relevant for you? I couldn't reproduce it.