logging-log4net-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Howe, Peter L" <ph...@paychex.com>
Subject Remoting appender sending deathly slow - was RE: Remote appender not sending
Date Mon, 21 Oct 2013 13:17:23 GMT
It probably takes 10 seconds for the client program to log all 1,000 events (just some test
code.)  The flush is every 10 seconds.  I changed my buffer size to 50 and the flush period
to 30 seconds - same behavior.  The call on the server to public void LogEvents(LoggingEvent[]
events)- the one required method on the IRemoteLoggingSink interface, is still never called
with more than one event at a time, and takes a painfully long time to process all of the
1,000 events logged/sent by the test client app.

Peter


From: Dominik Psenner [mailto:dpsenner@gmail.com]
Sent: Friday, October 18, 2013 5:49 PM
To: Log4NET Dev
Subject: Re: Remote appender not sending

Maybe cause you're flushing too often? As for the last message you did it with every event,
didnt you?

2013/10/18 Howe, Peter L <phowe@paychex.com<mailto:phowe@paychex.com>>
Now that I have it "working" (sort of), I am noticing some very non-performant conditions...

When I run the client and server process, and leave everything running long enough, I get
all the events to the server, however I see dozens of remoting connections in NETSTAT, and
the server process never sees a batch of events larger than one.  This is the relevant parts
of my .config on the client side:

    <appender name="RemotingAppender"
              type="Paychex.IP.Common.Logging.TimedRemotingAppender" >
      <sink value="tcp://localhost:8085/IPRemotingLogger" />
      <bufferSize value="20" />
      <flushPeriod>10</flushPeriod>
      <lossy value="false" />
      <onlyFixPartialEventData value="true" />
      <evaluator type="log4net.Core.LevelEvaluator">
        <threshold value="DEBUG" />
      </evaluator>
    </appender>

    <root>
      <priority value="ALL"/>
      <appender-ref ref="RemotingAppender" />
    </root>


The client calls logging 1,000 times.  The main program (client) thread is done almost immediately,
but if I DON'T leave the client running long enough (which is a number of minutes) for the
pool threads to send all the events, I get this at program close:

    log4net: Hierarchy: Shutdown called on Hierarchy [log4net-default-repository]
    log4net:ERROR [TimedRemotingAppender] RemotingAppender [RemotingAppender] failed
    to send all queued events before close, in OnClose.

I don't understand why the events are being sent to the server one at a time, instead of 20
(my buffer size.)

Thanks,


The information contained in this message may be privileged, confidential and protected from
disclosure. If the reader of this message is not the intended recipient, or an employee or
agent responsible for delivering this message to the intended recipient, you are hereby notified
that any dissemination, distribution or copying of this communication is strictly prohibited.
If you have received this communication in error, please notify your representative immediately
and delete this message from your computer. Thank you.

Mime
View raw message