[slf4j-user] nlog4j problems under load

Norval Hope nrhope at gmail.com
Fri Jun 29 04:14:28 CEST 2007


Hi,

I am in the final stages of preparing a release that builds on top of
ApacheDS, and consequently must use an slf4j compliant logging library so I
used nlog4j 1.2.25 (as AD does).

I have a requirement to have separate appenders created dynamically at
runtime and adopted the approach shown in the small attached test/config
files, which was:
  1. to have a template appender copied every time a new appender is
required
  2. have a stub logger used only so that I can discover the template
appender when I need it (as the template appender is in this loggers
appender list in the .properties config file)
  3. to dynamically create a logger intended to send output to the
dynamically created appender only (additivity is false and no other logger
knows about each particular appender instance).

This all works fine under normal load, but noted some problems under heavy
logging load so I wrote the stand alone test to investigate.

Running the test with 2 threads and no delay ("java nlog4jtest.NLog4jTest 2
0") causing problems immediately on a dual core laptop running windows xp:
  1. log messages from one logger appear against appenders to which they are
not linked
  2. partial log messages are evident, where headers are missing etc.
Using a delay of 5 milliseconds improved the situation but still both
problems were evident.

On a single cpu windows box running xp, "java nlog4jtest.NLog4jTest 10 0"
also evidenced both problems too.

I know I'm making use of a bespoke approach here, so I'm hoping I'm doing
something wrong in my implementation or breaking some contract I'm not aware
of. I basically can't ship with logging in this state and can't migrate to
logback due to LGPL license, which is a problem for the ApacheDS
project too.

Any expert advice about alternative implementation approaches or how to best
approach debugging would be greatly appreciated.

Many Thanks,
Norval
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://qos.ch/pipermail/slf4j-user/attachments/20070629/fdf63dea/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: nlog4jtest.tgz
Type: application/x-gzip
Size: 1734 bytes
Desc: not available
URL: <http://qos.ch/pipermail/slf4j-user/attachments/20070629/fdf63dea/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dualcpu_no_delay.tgz
Type: application/x-gzip
Size: 1384 bytes
Desc: not available
URL: <http://qos.ch/pipermail/slf4j-user/attachments/20070629/fdf63dea/attachment-0001.bin>


More information about the slf4j-user mailing list