Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 收到信号时动态加载logback.xml文件_Java_Logback - Fatal编程技术网

Java 收到信号时动态加载logback.xml文件

Java 收到信号时动态加载logback.xml文件,java,logback,Java,Logback,在我的项目中,我使用logback进行日志管理。但有一个问题困扰了我两天,我尝试了很多方法来解决它,但没有结果。因此,我需要帮助: 当项目启动时,项目第一次加载“logback.xml”,没有错误。当项目在sun.misc.signal方法中接收到信号,然后重新加载“logback.xml”文件时,这一次会发生错误 控制台中“logback.xml”文件中显示的错误为: 控制台中的错误是: 02:12:21,859 |-ERROR in ch.qos.logback.classic.boolex

在我的项目中,我使用logback进行日志管理。但有一个问题困扰了我两天,我尝试了很多方法来解决它,但没有结果。因此,我需要帮助:

当项目启动时,项目第一次加载“logback.xml”,没有错误。当项目在sun.misc.signal方法中接收到信号,然后重新加载“logback.xml”文件时,这一次会发生错误

控制台中“logback.xml”文件中显示的错误为:

控制台中的错误是:

02:12:21,859 |-ERROR in ch.qos.logback.classic.boolex.JaninoEventEvaluator@5d68fa45 -    Could not start evaluator with expression [message.contains("imsi")] org.codehaus.commons.compiler.CompileException: Line 1, Column 7: A class 'ch.qos.logback.classic.Level' could not be found
at org.codehaus.commons.compiler.CompileException: Line 1, Column 7: A class 'ch.qos.logback.classic.Level' could not be found
at org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:9779)
at org.codehaus.janino.UnitCompiler.getSingleTypeImport(UnitCompiler.java:8299)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:338)
at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:320)
at org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1017)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:327)
at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:293)
at org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java:310)
at org.codehaus.janino.ClassBodyEvaluator.compileToClass(ClassBodyEvaluator.java:319)
at org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:563)
at org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:462)
at org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:374)
at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:178)
at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:80)
at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:73)
at org.codehaus.janino.ScriptEvaluator.<init>(ScriptEvaluator.java:147)
at ch.qos.logback.core.boolex.JaninoEventEvaluatorBase.start(JaninoEventEvaluatorBase.java:57)
at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:167)
at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:317)
at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:196)
at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:182)
at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:149)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:135)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:99)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:76)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:68)
at com.log.loader.LogbackConfigLoader.load(LogbackConfigLoader.java:43)
at com.log.servlet.OnloadStart.signalCallback(OnloadStart.java:51)
at com.log.servlet.OnloadStart.handle(OnloadStart.java:45)
at sun.misc.Signal$1.run(Signal.java:212)
at java.lang.Thread.run(Thread.java:724)
02:12:21859 |-ch.qos.logback.classic.boolex中出现错误。JaninoEventEvaluator@5d68fa45-无法使用表达式[message.contains(“imsi”)]org.codehaus.commons.compiler.compileeException启动计算器:第1行第7列:找不到类“ch.qos.logback.classic.Level”
在org.codehaus.commons.compiler.CompileException:第1行第7列:找不到类“ch.qos.logback.classic.Level”
位于org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:9779)
位于org.codehaus.janino.UnitCompiler.getSingleTypeImport(UnitCompiler.java:8299)
位于org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:338)
位于org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:320)
Java$PackageMemberClassDeclaration.accept(Java.Java:1017)
位于org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:327)
位于org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:293)
位于org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java:310)
位于org.codehaus.janino.ClassBodyEvaluator.compileToClass(ClassBodyEvaluator.java:319)
位于org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:563)
位于org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:462)
位于org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:374)
位于org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:178)
位于org.codehaus.commons.compiler.Cookable.cook(Cookable.java:80)
位于org.codehaus.commons.compiler.Cookable.cook(Cookable.java:73)
位于org.codehaus.janino.ScriptEvaluator(ScriptEvaluator.java:147)
位于ch.qos.logback.core.boolex.JaninoEventEvaluatorBase.start(JaninoEventEvaluatorBase.java:57)
在ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:167)
位于ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:317)
位于ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:196)
位于ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:182)
位于ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
位于ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:149)
位于ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:135)
位于ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:99)
位于ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:76)
位于ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:68)
在com.log.loader.LogbackConfigLoader.load(LogbackConfigLoader.java:43)
位于com.log.servlet.OnloadStart.signalCallback(OnloadStart.java:51)
位于com.log.servlet.OnloadStart.handle(OnloadStart.java:45)
在sun.misc.Signal$1.run处(Signal.java:212)
运行(Thread.java:724)

非常感谢~~

如果表达式为:return message.contains(“imsi”)则有效吗?否,相同的错误。现在,我使用zeromq来进行通信,而不是sun.misc.Signal方法,并且它可以正常工作。
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
JoranConfigurator configurator = new JoranConfigurator();
lc.reset();
configurator.setContext(lc);
configurator.doConfigure("F:\\logback.xml");
02:12:21,859 |-ERROR in ch.qos.logback.classic.boolex.JaninoEventEvaluator@5d68fa45 -    Could not start evaluator with expression [message.contains("imsi")] org.codehaus.commons.compiler.CompileException: Line 1, Column 7: A class 'ch.qos.logback.classic.Level' could not be found
at org.codehaus.commons.compiler.CompileException: Line 1, Column 7: A class 'ch.qos.logback.classic.Level' could not be found
at org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:9779)
at org.codehaus.janino.UnitCompiler.getSingleTypeImport(UnitCompiler.java:8299)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:338)
at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:320)
at org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1017)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:327)
at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:293)
at org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java:310)
at org.codehaus.janino.ClassBodyEvaluator.compileToClass(ClassBodyEvaluator.java:319)
at org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:563)
at org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:462)
at org.codehaus.janino.ScriptEvaluator.cook(ScriptEvaluator.java:374)
at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:178)
at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:80)
at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:73)
at org.codehaus.janino.ScriptEvaluator.<init>(ScriptEvaluator.java:147)
at ch.qos.logback.core.boolex.JaninoEventEvaluatorBase.start(JaninoEventEvaluatorBase.java:57)
at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:167)
at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:317)
at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:196)
at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:182)
at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:149)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:135)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:99)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:76)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:68)
at com.log.loader.LogbackConfigLoader.load(LogbackConfigLoader.java:43)
at com.log.servlet.OnloadStart.signalCallback(OnloadStart.java:51)
at com.log.servlet.OnloadStart.handle(OnloadStart.java:45)
at sun.misc.Signal$1.run(Signal.java:212)
at java.lang.Thread.run(Thread.java:724)