[logback-dev] [JIRA] Commented: (LBCORE-128) Please support implementation of binary log files in RollingFileAppender/FileAppender

Joern Huxhorn (JIRA) noreply-jira at qos.ch
Wed Feb 17 16:19:33 CET 2010


    [ http://jira.qos.ch/browse/LBCORE-128?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=11536#action_11536 ] 

Joern Huxhorn commented on LBCORE-128:
--------------------------------------

I've just answered Maarten on the mailinglist.

The problem with the decoration method is that it defines (if I'm not mistaken) that a given stream is decorated once and reused subsequently for all the encoding. This works well for streaming encoding like SocketAppender but doesn't work for encoding that uses independent messages (i.e. one single event is serialized into <size of serialized event in bytes><bytes of serialized event> blocks). Those are crucial for the possibility of random access.

In my encoders, the given OutputStream is wrapped (and flushed) for every event. This is necessary because both ObjectOutputStream and GZIPOutputStream have a context.
Serializing in this way enables me to read any event knowing only it's start-offset. Otherwise, reading event 10.000 would mean that I had to read and drop 9.999 events until I reach the relevant event.

> Please support implementation of binary log files in RollingFileAppender/FileAppender
> -------------------------------------------------------------------------------------
>
>                 Key: LBCORE-128
>                 URL: http://jira.qos.ch/browse/LBCORE-128
>             Project: logback-core
>          Issue Type: Improvement
>          Components: Appender
>    Affects Versions: 0.9.17
>            Reporter: Joern Huxhorn
>            Assignee: Ceki Gulcu
>
> This was discussed briefly at http://marc.info/?l=logback-dev&m=124905434331308&w=2 and I forgot to file a ticket about this.
> Currently, RandomFileAppender => FileAppender => WriterAppender is using the following method in WriterAppender to actually write the data:
> protected void writerWrite(String s, boolean flush) throws IOException
> Please add an additional method like
> protected void writerWrite(byte[] bytes, boolean flush) throws IOException
> to write to the underlying stream directly.
> writerWrite(String, boolean) could call that method after performing the transformation internally, making this change transparent for the rest of the implementation.
> Using a binary format for logfiles could have tremendous performance impact as can be seen here: http://sourceforge.net/apps/trac/lilith/wiki/SerializationPerformance

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the logback-dev mailing list