This sounds familiar. I think that it should be possible to flush the buffer with specific log events. For example the buffer has a few items and as soon as an error event comes in the buffer gets flushed. On 19 May 2015 3:21 am, "Jim Scott" <jsc...@infoconex.com> wrote:
> This is a question I brought up back in 2011 and never ended up pursuing > it far enough. > > Scenario: > Currently have Log4Net setup to log all ERROR level events to a database > by using the AdoNetAppender. > > Issues: > > 1) Need combination of Buffering and time based triggering to write events > to the database. > > If we set the buffer size to 20 then we do not see anything logged to the > database until the buffer fills up with 20 events which of course exactly > what the buffer is designed to do. Since we want somewhat real-time logging > to the database we end up setting the buffer size to 1 so that every event > is written immediately. However what I would really like to see is a > combination of buffer and timed based trigger events to write my events to > the DB. If this was possible I would set my buffer to 20 events and set a > timed based trigger to 30 seconds. Now my buffer will get written to the DB > any time the timed event happens or 20 events are buffered. > > 2) Loss of database connectivity causes the AdoNetAppender to no longer > write entries to the database. > > Because the AdoNetAppender can cause the thread to hang for a long time if > the database is unavailable we have set the ReconnectOnError to false. This > unfortunately creates the issue I am facing in which if the SQL server is > rebooted or service restarted the application quits talking to the database > until the application is restarted. > > I would love to see this feature extended to disable the buffer as it is > now but then on every so many attempts or after a given time period if the > buffer has events reattempt to write the entries to the DB and mark it as > available again. > > > I am willing to do the work to make the enhancements but would love to see > it make it back into log4net as I am sure others must need something like > the above? Or perhaps I am missing some simple configuration options ? > > Thanks > Jim Scott > >