ES启动报错No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender

ES启动报错:

2019-03-01 21:52:02,153 main ERROR Unable to invoke factory method in class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile: java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender
	at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:235)
	at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:135)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:959)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:899)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:891)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:514)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:238)
	at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:250)
	at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:547)
	at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:263)
	at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:234)
	at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:127)
	at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:302)
	at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159)
	at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150)
	at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
	at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
	at org.elasticsearch.cli.Command.main(Command.java:90)
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116)
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93)

2019-03-01 21:52:02,176 main ERROR Null object returned for RollingFile in Appenders.
2019-03-01 21:52:02,176 main ERROR Unable to locate appender "rolling" for logger config "root"

该问题是es启动是没有找到log4j日志输出端的类
网上答案:检查log4j2.properties文件中属性配置是否正确,末尾不能有空格(笔者检查了半天,并且试着替换了该文件,替换了jar包,还是没有解决问题)
后来通过查找最后两行报错,发现是用root用户登录启动es之后查看日志,导致elasticsearch.log的属主变成了root:

ES启动报错No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender_第1张图片

更改之后启动,问题解决

ES启动报错No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender_第2张图片

开始学习ES过程会有很多坑,欢迎大家留言探讨。

你可能感兴趣的:(技术框架,ElasticSearch,java编程应用)