Sorry, I was confused and mixed something up...

I *planned* to implement a thread-specific sequence number but never did so. I 
also considered logging the ThreadGroup-hierarchy but didn't do so, yet, 
because of the expected performance impact.

Which reminds me, completely off-topic, of another idea concerning a custom 
Message implementation:
A ThreadDumpMessage that would not get any parameter at all and would consist 
of a ThreadDump if it is actually logged, including the ThreadGroup info etc..
This would have helped me immensely in the past. Instead, I had to trigger 
thread dumps via SIG_QUIT at a random points of execution.

Such a Message wouldn't be used in production under normal circumstances but 
could be enabled in case of strange concurrency issues...

Joern.

On 18.09.2011, at 17:44, Scott Deboy wrote:

> Chainsaw does a similar thing by adding event properties when the event is 
> received. It does this regardless of which Receiver received the event.
> 
> 
> On Sep 18, 2011, at 4:54 AM, Joern Huxhorn <jhuxh...@googlemail.com> wrote:
> 
>> 
>> On 17.09.2011, at 23:42, Ralph Goers wrote:
>> 
>>> 
>>> On Sep 17, 2011, at 1:43 PM, Joern Huxhorn wrote:
>>> 
>>>> 
>>>> On 17.09.2011, at 21:26, Ralph Goers wrote:
>>>> 
>>>>> 
>>>>> On Sep 17, 2011, at 11:40 AM, Joern Huxhorn wrote:
>>>>> 
>>>>>> 
>>>>>> On 17.09.2011, at 18:47, John Vasileff wrote:
>>>>>> 
>>>>>>> 
>>>>>>> On Sep 17, 2011, at 8:53 AM, Joern Huxhorn wrote:
>>>>>>> 
>>>>>>> Interesting point on serialization.  When would you see serialization 
>>>>>>> happening?  Is this primarily for appenders?
>>>>>>> 
>>>>>> 
>>>>>> SocketAppender is using serialization. Since I'm the author of Lilith ( 
>>>>>> http://lilith.huxhorn.de/ ) I tend to focus on stuff like that.
>>>>> 
>>>>> Actually, in Log4j 2.0 SocketAppender uses a Layout. The default Layout 
>>>>> is SerializedLayout. If you want to use a LillithLayout you would be free 
>>>>> to do so.
>>>>> 
>>>>>> 
>>>>>> This is also the reason for the differentiation between the Message 
>>>>>> instance and the (laziliy) formatted  message string. A SocketAppender 
>>>>>> does not have any need for a formatted message. It is perfectly valid to 
>>>>>> skip the formatting entirely and simply transmit the message pattern and 
>>>>>> the message parameters (as Strings) to safe some CPU in the logged 
>>>>>> application.
>>>>> 
>>>>> I disagree. The SocketAppender should be able to interact with something 
>>>>> that accepts Thrift, Avro, Hession or other serialization protocols or 
>>>>> even the RFC 5424 format.  However, in cases where the event is 
>>>>> serialized into a format where the LogEvent will be recreated on the 
>>>>> other side of the socket connection, I agree that formatting the message 
>>>>> on the sender's side is not required.
>>>> 
>>>> Your SocketAppender is obviously much improved compared to the Logback 
>>>> one. Having the actual serialization mechanism pluggable is a very good 
>>>> idea.
>>>> Nevertheless, I assume that simple serialization would be the "reference 
>>>> implementation". I'd, of course, hook in my protobuf implementation...
>>> 
>>> If you provide a ProtobufLayout I'd happily include it - although I'd make 
>>> the protobuf artifacts optional dependencies as I did for Flume.
>> 
>> Well, I could give you my protobuf but I'm not sure if it makes sense to add 
>> it to Log4J directly.
>> 
>> It contains more (optional) fields than Log4J will provide, partially since 
>> populating those fields has a performance impact. JUL has an event id by 
>> Thread but providing them would require ThreadLocal handling of the counter, 
>> i.e. reduces performance for very little additional info. Who would really 
>> use this information?
>> I keep those infos in Lilith so it can import/receive events lossless but I 
>> don't think that Log4J should support them.
>> 
>> So it's probably best to keep this out of the Log4J codebase. If we add it 
>> then we'd have to coordinate future extension. If we leave it out as a 
>> third-party implementation of the SocketAppender layout then I can just 
>> change it as needed.
>> 
>> Joern.
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
>> For additional commands, e-mail: log4j-dev-h...@logging.apache.org
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
> For additional commands, e-mail: log4j-dev-h...@logging.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to