[logback-dev] While you are working on FileAppenders... was: Question about a custom binary file appender.
Maarten Bosteels
mbosteels.dns at gmail.com
Sat Aug 1 20:58:23 CEST 2009
On Sat, Aug 1, 2009 at 8:33 PM, Ceki Gulcu <ceki at qos.ch> wrote:
>
> Thank you for reminding us about the prototype. I find it very
> informative and helpful.
>
> As I see things, the Encoder interface and the various implementations
> you have written show that it is not sufficient to return a byte array
> for a given ILoggingEvent, the "encoder" also needs to know how to
> write to the underlying OutputStream, it may also need to decorate the
> underlying OutputStream with its own (e.g. ObjectOutputStream for
> serialization).
>
> Consequently, I'd propose to rename the Encoder interface as
> ILoggingEventWriter. (In my mind at least, an Encoder is associated with
> transforming data into bytes.)
>
> So here is my revised interface:
>
> public interface Encoder <T extends OutputStream> {
> void write(ILoggingEvent event, T output) throws IOException;
> T decorate(OutputStream os) throws IOException;
> }
I guess you forgot to rename the interface itself ;-)
>From http://en.wikipedia.org/wiki/Encoder "An encoder is a device, circuit,
transducer, software program, algorithm or person that converts information
from one format, or code to another..."
So I think calling it Encoder is appropriate, but I have no string feeling
about the name of the interface.
The terminology also used in MINA:
http://mina.apache.org/report/trunk/apidocs/org/apache/mina/filter/codec/ProtocolEncoder.html
>
> What should be done about methods such as getFileHeader(),
> getFileFooter(), getPresentationHeader() and getPresentationFooter()
> from the Layout interface? My first reaction would be to rename getX()
> as writeX(OutputStream).
Sounds OK to me.
>
>
> This is all I have time for at this moment but I would really like to
> pursue this exchange.
That's cool !
I have no idea how much work it is to support encoders in the logback.xml
file.
I mean, we should be able to tell logback to use a XXXAppender with a
ZZZEncoder ?
Regards
Maarten
>
>
> Cheers,
>
> Maarten Bosteels wrote:
>
>> Hi Ceki and Joern,
>>
>> Remember the Encoder interface we discussed in the past ?
>> To make the aspect of encoding a LoggingEvent pluggable, and thus the
>> Appender implementation more reusable.
>>
>> I have small prototype here :
>> http://tinyurl.com/encoder-interface
>> http://tinyurl.com/encoder-example
>>
>> regards,
>> Maarten
>>
>> On Fri, Jul 31, 2009 at 5:51 PM, Ceki Gulcu <ceki at qos.ch <mailto:
>> ceki at qos.ch>> wrote:
>>
>>
>> Hi Joern,
>>
>> Plese enter a bug report with as much information as you can about the
>> code you'd like to see changed. In principle, very little code is
>> involved in actually writing to the file so the task would seem rather
>> easy. However, WriterAppender on which FileAppender and
>> RollingFileAppender are built upon uses a Writer to write whatever it
>> is that needs to be written. Unfortunately, a Writer knows how to
>> writes String or chars, but not bytes.
>>
>> Nevertheless, I think it's feasible with some work...
>>
>> Joern Huxhorn wrote:
>>
>> Hi Ceki.
>>
>> I've seen that you are working on the FileAppenders again. Have
>> you seen this mail I wrote? What do you think about it?
>>
>> Joern.
>>
>> Begin forwarded message:
>>
>> *From: *Joern Huxhorn <jhuxhorn at googlemail.com
>> <mailto:jhuxhorn at googlemail.com>
>> <mailto:jhuxhorn at googlemail.com
>> <mailto:jhuxhorn at googlemail.com>>>
>>
>> *Date: *23. April 2009 18:38:38 MESZ
>> *To: *logback developers list <logback-dev at qos.ch
>> <mailto:logback-dev at qos.ch> <mailto:logback-dev at qos.ch
>> <mailto:logback-dev at qos.ch>>>
>>
>> *Subject: **Question about a custom binary file appender.*
>>
>> Hi Ceki.
>>
>> I'd like to implement a file appender that writes the binary
>> Lilith
>> format, i.e. gzipped protobuf-serialized events, instead of
>> Strings.
>> I'd also like to have the same functionality that's supported
>> by
>> RollingFileAppender right now.
>>
>> Unfortunately, there seems to be no way to simply write
>> bytes instead of
>> a String. How would you go from here?
>> Reimplementing everything from the start seems to be a
>> pretty bad idea.
>>
>> What do you think about enhancing the RFA so it's using
>> byte[] instead
>> of Strings? The current behavior could be implemented using
>> those
>> methods + string.getBytes("UTF-8") or CharsetEncoder...
>>
>> Any idea, suggestions?
>>
>> Regards,
>> Joern.
>>
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> logback-dev mailing list
>> logback-dev at qos.ch <mailto:logback-dev at qos.ch>
>> http://qos.ch/mailman/listinfo/logback-dev
>>
>>
>> -- Ceki Gülcü
>> Logback: The reliable, generic, fast and flexible logging framework
>> for Java.
>> http://logback.qos.ch
>> _______________________________________________
>> logback-dev mailing list
>> logback-dev at qos.ch <mailto:logback-dev at qos.ch>
>> http://qos.ch/mailman/listinfo/logback-dev
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> logback-dev mailing list
>> logback-dev at qos.ch
>> http://qos.ch/mailman/listinfo/logback-dev
>>
>
> --
> Ceki Gülcü
> Logback: The reliable, generic, fast and flexible logging framework for
> Java.
> http://logback.qos.ch
> _______________________________________________
> logback-dev mailing list
> logback-dev at qos.ch
> http://qos.ch/mailman/listinfo/logback-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://qos.ch/pipermail/logback-dev/attachments/20090801/d4517f5f/attachment.htm>
More information about the logback-dev
mailing list