Please see - 
https://blogs.apache.org/foundation/entry/apache_logging_services_project_announces
 
<https://blogs.apache.org/foundation/entry/apache_logging_services_project_announces>.

Ralph

> On Aug 13, 2015, at 10:08 PM, Jinhong Lu <[email protected]> wrote:
> 
> 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);
> 
> }
> 
> 
> }

Reply via email to