I met this exception when using syslogappender. my log4j version is 1.2.16.
Any idea? thanks. java.lang.NoSuchFieldError: errorHandler at org.apache.log4j.net.SyslogAppender.setSyslogHost(SyslogAppender.java:391) ~[log4j-1.2.16.jar:na] at com.netease.sytopology.util.MySysLogger.<init>(MySysLogger.java:39) ~[stormjar.jar:na] at com.netease.sytopology.util.MySysLogger.getInstance(MySysLogger.java:28) ~[stormjar.jar:na] at com.netease.sytopology.bolt.FilterFunction.prepare(FilterFunction.java:65) ~[stormjar.jar:na] at storm.trident.planner.processor.EachProcessor.prepare(EachProcessor.java:54) ~[storm-core-0.9.4.jar:0.9.4] at storm.trident.planner.SubtopologyBolt.prepare(SubtopologyBolt.java:121) ~[storm-core-0.9.4.jar:0.9.4] at storm.trident.topology.TridentBoltExecutor.prepare(TridentBoltExecutor.java:231) ~[storm-core-0.9.4.jar:0.9.4] at backtype.storm.daemon.executor$fn__4722$fn__4734.invoke(executor.clj:692) ~[storm-core-0.9.4.jar:0.9.4] at backtype.storm.util$async_loop$fn__458.invoke(util.clj:461) ~[storm-core-0.9.4.jar:0.9.4] at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67] And here is my code: import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.PatternLayout; import org.apache.log4j.helpers.OnlyOnceErrorHandler; import org.apache.log4j.net.SyslogAppender; import org.apache.log4j.varia.FallbackErrorHandler; public class MySysLogger { //以下参数均可根据需要放到配置文件中。 //默认日志级别 private static Level level = Level.INFO; //日志接收服务器 private static String syslogHost = "172.16.1.18"; //设置facility private static String facility = "local7"; private static String loggerName = ""; public static void setLoggerName(String loggerName2) { MySysLogger.loggerName = loggerName2; } private static Logger LOG = null; public static synchronized Logger getInstance() { if (LOG == null) { new MySysLogger(loggerName); } return LOG; } private MySysLogger(String loggerName) { LOG = Logger.getRootLogger(); LOG.setLevel(level); SyslogAppender appender = new SyslogAppender(); appender.setErrorHandler(new FallbackErrorHandler()); appender.setSyslogHost(syslogHost); appender.setLayout(new PatternLayout( "%r " + loggerName +" [%t] %-5p %C%x - %m")); appender.setHeader(true); appender.setFacility(facility); LOG.addAppender(appender); } }