You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by Paul Smith <Pa...@lawlex.com.au> on 2004/05/07 01:37:11 UTC
RE: New feature request: Add "Flush on Level" capability to FileA
ppender
Yup, and there is already a CylicBuffer & CyclicBufferList classes available
in log4j to use for this (this is what the SMTPAppender uses).
> -----Original Message-----
> From: Simon Dorrat [mailto:simon.dorrat@gsjbw.com]
> Sent: Friday, May 07, 2004 9:27 AM
> To: 'Log4J Developers List'
> Subject: RE: New feature request: Add "Flush on Level" capability to
> FileA ppender
>
>
> Thats an interesting requirement. I have never considered
> that before, but
> could imagine a few people wanting that. It could be an easy
> or difficult
> addition depending on which design pattern was used. (See
> the bugzilla
> history for the discussion of possible patterns between me
> and Paul). So if
> others think its worthwhile that could influence the design choice.
>
> Simon
>
> > -----Original Message-----
> > From: Alan Brown [SMTP:abrown@opstechnology.com]
> > Sent: Thursday, 6 May 2004 4:52 AM
> > To: Log4J Developers List
> > Subject: RE: New feature request: Add "Flush on Level"
> capability to
> > FileAppender
> >
> > It sounds like a nice feature to me. As an RFE to the RFE,
> I'd like to
> > see an option to cap the amount of data in the buffer. My use case
> > being that when I come across an ERROR or WARN statement, I'm only
> > interested in the logging messages that led up to it.
> >
> > A circular buffer to hold the cached logs would prevent me worrying
> > about memory being sucked up by my logging system (a
> relevant concern if
> > many appenders are being used.
> >
> > alan
> >
> > -----Original Message-----
> > From: Simon Dorrat [mailto:simon.dorrat@gsjbw.com]
> > Sent: Tuesday, May 04, 2004 8:26 PM
> > To: 'Log4J Developers List'
> > Subject: New feature request: Add "Flush on Level" capability to
> > FileAppender
> >
> > I submitted a feature request to Bugzilla last week and
> have not heard
> > anything. I guess thats because you're all pretty busy.
> Has anyone had
> > a
> > chance to think about it? As I said I'm happy to do the work.
> >
> > Simon
> > ================================
> >
> > http://issues.apache.org/bugzilla/show_bug.cgi?id=28647
> >
> > Add "Flush on Level" capability to FileAppender
> >
> > Summary: Add "Flush on Level" capability to FileAppender
> > Product: Log4j
> > Version: 1.2
> > Platform: All
> > OS/Version: All
> > Status: NEW
> > Severity: Enhancement
> > Priority: Other
> > Component: Appender
> > AssignedTo: log4j-dev@jakarta.apache.org
> > ReportedBy: sdorrat@jbwere.com.au
> >
> >
> > New Feature Requested:
> > I have used logging extensively for many years and tend to have my
> > programs
> > log alot of information. When writing to a file this can cause a
> > performance
> > impact due to very frequent disk I/O. So my own logging libraries I
> > used
> > (in
> > C, VB, PL/SQL) always had the ability to configure the
> level that the
> > log
> > text
> > was flushed to disk.
> >
> > I have now extended FileAppender to create this feature. It simply
> > allows
> > you
> > to set the level that flushing occurs. Whenever a log
> event is logged
> > for
> > that level or higher, a flush occurs. i.e. if the
> FlushLevel is INFO,
> > then
> > when an INFO, WARN, ERROR or FATAL event is logged the
> stream will be
> > flushed
> > to disk. DEBUG messages will accumulate and not flush until the next
> > INFO
> > event is logged.
> >
> > Justification:
> > -The performance improvement allows for more detailed
> logging levels to
> > be
> > left permanently on, or to have less impact when they are on.
> > - The logging style in most programs (certainly all mine)
> finish each
> > major
> > processing step logging an event at a level higher than (or at least
> > equal
> > to)
> > the previously logged events. Eg an operation
> "createOrder" may have a
> > number
> > of INFO and DEBUG msgs (and soon TRACE!) but would finish
> on a INFO msg
> > like "Successfully created order for 1000 ORCL...". This pattern
> > guarantees
> >
> > that flush of all log event has occurred when the operation
> finishes,
> > rather
> >
> > than waiting for some arbitrary point like a 8K buffer being filled.
> > -The one downside is that if a program crashes, then any
> final logged
> > events
> >
> > below the threshold that occurred after the last threhold
> level will not
> >
> > appear in the file. This is normally a small price to pay,
> as you just
> > then
> >
> > lower the flush level and rerun so you get all events
> flushed. (This
> > assumes
> > the error is repeatable, but with no flushing feature, the
> lower level
> > events
> > wouldnt have been turned on due to the performance hit so you are no
> > worse
> > off
> > even if it is not).
> > NOTE: I have implemented a shutdown hook to address the last issue -
> > i.e.
> > automatically flush on VM exit, but that is a Java 1.3
> method so cannot
> > be
> > used in Log4j as I understand it.
> >
> > Current Status:
> > I have written a new appender "LevelFlushedFileAppender"
> that extends
> > FileAppender that does this job. This works fine and I am happy to
> > submit
> > it. However I think that it would be better to alter the
> FileAppender
> > itself
> > and add the code directly to this, so it could be inherited in all
> > classes
> > extending FileAppender. I am happy to implement it like this also.
> >
> > Let me know if the feature is accepted or you want further
> information,
> > and
> > what I should do going forward.
> >
> > Simon
> >
> >
> > Goldman Sachs JBWere
> > Disclosure of Interest
> > ORG: Goldman Sachs JBWere and/or its affiliates expect to
> receive or
> > intend to seek compensation for financial and advisory
> services in the
> > next 3 months from the company, its parent, or its wholly owned or
> > majority owned subsidiary.
> >
> >
> >
> > GOLDMAN SACHS JBWERE PTY LTD DISCLAIMER
> >
> > Goldman Sachs JBWere Pty Ltd and its related entities
> distributing this
> > document and each of their respective directors, officers and agents
> > ("the Goldman Sachs JBWere Group") believe that the information
> > contained in this document is correct and that any
> estimates, opinions,
> > conclusions or recommendations contained in this document
> are reasonably
> > held or made as at the time of compilation. However, no warranty is
> > made as to the accuracy or reliability of any estimates, opinions,
> > conclusions, recommendations (which may change without
> notice) or other
> > information contained in this document and, to the maximum extent
> > permitted by law, the Goldman Sachs JBWere Group disclaims
> all liability
> > and responsibility for any direct or indirect loss or
> damage which may
> > be suffered by any recipient through relying on anything
> contained or
> > omitted from this document.
> >
> > Goldman Sachs JBWere does not represent or warrant the
> attached files
> > are free from computer viruses or other defects. The
> attached files are
> > provided, and may only be used, on the basis that the user
> assumes all
> > responsibility for any loss, damage or consequence
> resulting directly or
> > indirectly from use.
> >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
> > For additional commands, e-mail: log4j-dev-help@logging.apache.org
> >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
> > For additional commands, e-mail: log4j-dev-help@logging.apache.org
>
>
> Goldman Sachs JBWere
> Disclosure of Interest
> ORG: Goldman Sachs JBWere and/or its affiliates expect to
> receive or intend to seek compensation for financial and
> advisory services in the next 3 months from the company, its
> parent, or its wholly owned or majority owned subsidiary.
>
>
>
> GOLDMAN SACHS JBWERE PTY LTD DISCLAIMER
>
> Goldman Sachs JBWere Pty Ltd and its related entities
> distributing this document and each of their respective
> directors, officers and agents ("the Goldman Sachs JBWere
> Group") believe that the information contained in this
> document is correct and that any estimates, opinions,
> conclusions or recommendations contained in this document are
> reasonably held or made as at the time of compilation.
> However, no warranty is made as to the accuracy or
> reliability of any estimates, opinions, conclusions,
> recommendations (which may change without notice) or other
> information contained in this document and, to the maximum
> extent permitted by law, the Goldman Sachs JBWere Group
> disclaims all liability and responsibility for any direct or
> indirect loss or damage which may be suffered by any
> recipient through relying on anything contained or omitted
> from this document.
>
> Goldman Sachs JBWere does not represent or warrant the
> attached files are free from computer viruses or other
> defects. The attached files are provided, and may only be
> used, on the basis that the user assumes all responsibility
> for any loss, damage or consequence resulting directly or
> indirectly from use.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-dev-help@logging.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org