在做项目的过程中,通过java -jar 启动来测试一个插件功能时 遇到了如下的问题,
通过查看日志发现jar已经正常启动,但是为什么控制台不能输出呢,很奇怪,上百度查了一下,将问题原因指向log4j2 ,只要在相应的位置加上
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
就能搞定,但是自个写的插件用的是java自带
java.util.logging.Logger,而且插件还没有加载就报错了,这个原因肯定不是出在自个的插件中,然后将游戏的所有插件全部移除,问题依然存在,这时问题只能出在游戏的核心jar中,外部暴露的jar中没有class 文件,只能去看看MANIFEST.MF文件
通过文件的描述,找到了真正的jar,发现jar中有个log4j2.xml 文件,
在上图红框的位置修改成如下代码,替换原文件即可
<Queue name="TerminalConsole">
<PatternLayout pattern="[%d{HH:mm:ss} %level]: %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<OnStartupTriggeringPolicy />
</Policies>
</Queue>
参考:http://stackoverflow.com/questions/31918027/unable-to-locate-appender